Android中的并发文件访问

我知道许多操作系统在文件系统上执行某种locking以防止不一致的视图。 Java和/或Android对文件访问的线程安全性有任何保证吗? 我希望尽可能多地了解这一点,然后继续自己编写并发代码。

如果我错过了一个类似的问题,可以随意closures这个线程。 谢谢。

Solutions Collecting From Web of "Android中的并发文件访问"

Androidbuild立在Linux之上,因此inheritance了Linux的文件系统语义。 除非您显式locking文件,否则多个应用程序和线程可以打开它以进行读/写访问。 除非实际需要跨进程文件同步,否则我会build议使用普通的Java同步原语来仲裁对文件的访问。

正常的读/写function(FileInputStream等)不提供任何线程安全AFAIK。 为了实现线程安全,你需要使用FileChannel 。 这看起来像这样:

FileInputStream in = new FileInputStream("file.txt"); FileChannel channel = in.getChannel(); FileLock lock = channel.lock(); // do some reading lock.release(); 

我会阅读文件locking文件 ,并注意线程!