我正在编写一个简单的客户端-服务器应用程序,其中服务器打开一个线程,该线程监视文件创建的目录。这些文件是序列化的对象。线程应该反序列化它们,读取数据并创建一个新对象以将其发送给客户端。所以总的来说它工作得很好,但有时我会得到:
java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2571) 的 java.io.EOFException 在 java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1315) 在 java.io.ObjectInputStream.readObject(ObjectInputStream.java: 369) 在 ServerSend.start(ServerSend.java:58) 在 ServerSend.run(ServerSend.java:25) 在 java.lang.Thread.run(Thread.java:722)
但为什么会这样?为什么只是有时......我阅读对象的程序的一部分:
FileInputStream fileStream = new FileInputStream(dirpath+"/"+t);
ObjectInputStream ois = new ObjectInputStream(fileStream);
Object toSend = ois.readObject();
其他一些程序创建这些对象,我的 StreamReader 想要读取:
FileOutputStream fileStream = new FileOutputStream(filepath_to_where_listening);
ObjectOutputStream oos = new ObjectOutputStream(fileStream);
oos.writeObject(mmout);