0

Process-A 使用 FileOutputStream 将字节写入数据文件。Process-B 使用 DataInputStream 从同一个数据文件中读取数据。

数据文件位于不支持 FileLocks 的 NFS 挂载上,因此使用以下方法:

Process-A 创建一个锁定文件来通知 Process-B 它可以开始读取数据文件。它在刷新并关闭 FileOutputStream 后创建锁定文件。Process-B 检查锁定文件是否存在,然后开始读取数据文件。但是,有时它会遇到 EOFException。

java.io.EOFException
        at java.io.DataInputStream.readFully(DataInputStream.java:180)
        at java.io.DataInputStream.readUTF(DataInputStream.java:592)
        at java.io.DataInputStream.readUTF(DataInputStream.java:547)


java.io.EOFException
        at java.io.DataInputStream.readInt(DataInputStream.java:375)
        at java.io.DataInputStream.readFloat(DataInputStream.java:429)

有人可以解释一下,出了什么问题?另外,鉴于我不能使用 FileLock api,还有其他替代方法吗?

4

1 回答 1

0

什么都不会出错。您已到达流的末尾。对等方已经关闭了他的连接端。结束你的结局,忘记它。

于 2012-05-15T23:30:33.423 回答