如何在Android上使用FileLock?

fra*_*ish 3 java android filelock

我认为我们能够锁定文件以进行独占访问,因为我看到了此链接:http : //developer.android.com/reference/java/nio/channels/FileLock.html

我想在后台进程(服务)和真正的前台应用程序中创建一个保存/加载文件。他们可能会尝试同时访问此文件,在这种情况下,应该等待。

我在Android上找不到FileLock的真实示例,我只是读了很多线程,而这在Android上是不可能的。但是,如果是这样,为什么文档中有“ FileLock”部分?

Eng*_*uad 5

这适用于普通的Java应用程序:

File file = ...;
FileInputStream fis = new FileInputStream(file); // or FileOutputStream fos = new FileOutputStream(file);
FileLock lock = fis.getChannel().lock(); // or FileLock lock = fos.getChannel().lock();

// do whatever you want with the file

lock.release();
Run Code Online (Sandbox Code Playgroud)


小智 5

  1. 你可以尝试lock()阻塞,trylock()而不阻塞
  2. FileLock不适用于FileInputStream.
  3. 在 Android 中,FileLock在进程之间工作,但在进程中的线程之间不起作用。