免責事項私の質問は、次の 2 つのリンクとは異なります
public class AppendableObjectOutputStream extends ObjectOutputStream {
public AppendableObjectOutputStream(OutputStream out) throws IOException {
super(out);
}
@Override
protected void writeStreamHeader() throws IOException {}
}
- 上記のソリューションの問題は、ストリームを閉じることなく追加可能なストリームに複数のオブジェクトを書き込むことをサポートしていないことです。
- 追加可能なストリームを開いて複数のオブジェクトを書き込むと、読み取り時に最初のオブジェクトのみを適切に読み取ることができ、2 番目のオブジェクトを読み取ろうとすると EOF 例外が発生します。
追加可能なストリームにオブジェクトを書き込むような方法で進むと、ストリームを閉じます。次に、再びストリームを開き、別のオブジェクトを閉じて書き込みます。このようにして、複数のオブジェクトを適切に読み取ることができます。
fileOutputStream = new FileOutputStream("abc.dat",true); outputBuffer = new BufferedOutputStream(fileOutputStream); objectStream = new AppendableObjectOutputStream(outputBuffer); BucketUpdate b1 = new BucketUpdate("getAllProducts1",null,"1",null); BucketUpdate b2 = new BucketUpdate("getAllProducts2",null,"2",null); BucketUpdate b3 = new BucketUpdate("getAllProducts3",null,"3",null); objectStream.writeObject(b1); objectStream.writeObject(b2); objectStream.writeObject(b3); objectStream.close();