Process-A使用FileOutputStream将字节写入数据文件。 Process-B使用DataInputStream从同一数据文件中读取。
数据文件驻留在不支持FileLocks的NFS挂载上,因此使用了以下方法:
Process-A创建一个锁定文件,通知Process-B它可以开始读取数据文件。它在刷新并关闭FileOutputStream后创建锁文件。进程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?
答案 0 :(得分:0)
没有什么是错的。您已到达流的末尾。同伴关闭了他的连接结束。关闭你的结局并忘记它。