サーバーがファイル作成のためにディレクトリを監視するスレッドを開く単純なクライアントサーバーアプリケーションをプログラミングしています。これらのファイルはシリアル化されたオブジェクトです。スレッドはそれらをデシリアライズし、データを読み取り、新しいオブジェクトを作成してクライアントに送信する必要があります。したがって、一般的にはかなりうまく機能しますが、時々次のようになります。
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);