Java 同步一个外部文件

Java synchronize an external file

在Java中有没有同步两个进程之间的文件读写?

我发现FileLock,有了这个我可以在文件写入时锁定文件,但我需要有一个进程轮询读取,效率不高。我想模拟信号量,使其高效:

class Process<E> {
  private E e;

  private final Semaphore read = new Semaphore(0);
  private final Semaphore write = new Semaphore(1);

  public final void write(final E e) {
    write.acquire();
    this.e = e;
    read.release();
  }

  public final E read() {
    read.acquire();
    E e = this.e;
    write.release();
    return e;
  }
}

是否可以使用 Filelock 或其他 class?

提前致谢。

忘记了 Java 管道?喜欢PipedInputStream and PipedOutputStream需要使用不同的线程来高效交换数据。