1. 次のコードは、ファイル 2.log をシリアル化し、2.txt に保存します。 リーリー
逆シリアル化:ObjectInputStream() を使用します
FileInputStream fis = new FileInputStream("D:/2.txt");
ObjectInputStream oin = new ObjectInputStream(fis);
oin.readObject( );
エラー: スレッド "メイン" java.io.StreamCorruptedException: 無効なストリーム ヘッダー: 3139322E
これに対処するにはどうすればよいですか?
ファイルが大きい場合、読み取り時にキャッシュを追加するにはどうすればよいですか?ダニエルが私を啓発してくれることを願っています、xiexie
漂亮男人2017-05-27 17:43:47
あなたの問題は、ObjectInputStream によって読み取られるコンテンツが ObjectOutputStream によって書き込まれることによって生成される必要があるためです。ファイルの内容は、Java シリアル化の仕様要件に準拠する必要があります。自分で作成したバイト配列は使用できません。
サイズでも、シリアル化と逆シリアル化の効率でも、基本的には JAVA に付属するシリアル化よりも数倍優れていますが、データが大きいほど、利点は明らかです。操作が面倒