2012-03-06 4 views
0

シリアル化されたJavaオブジェクトを読み込むためにBufferedReaderを使用したいと思いますが、これは信頼できますか?またはデータを保証するために合計をチェックするために実装する必要がありますか?ありがとう。Java Socket BufferedReaderはデータをチェックするために必要なチェックサムですか?

+0

[ObjectInputStream](http://docs.oracle.com/javase/7/docs/api/java/io/ObjectInputStream.html)を使用しないでください(おそらく[BufferedInputStream ](http://docs.oracle.com/javase/7/docs/api/java/io/BufferedInputStream.html))? – devconsole

+1

BufferedReaderはテスト用です。Javaシリアル化ではバイナリデータを使用し、BufferedReaderで読み取ると破損します。最も簡単な解決策は、バイナリデータ用に設計されたBufferedInputStreamを使用することです。破損しないようにしてください。 –

答えて

1

BufferedReaderを使用してシリアル化されたオブジェクトを読み取ることはできません。バイナリデータを読み書きするため

  • 小川(InputStreamOutputStream、それらを実装し、すべて):Javaは、I/Oインタフェースおよびクラスの2種類があります。
  • テキストを読み書きするためのリーダとライタ(ReaderWriter)(文字として解釈されるバイナリデータ)。

シリアル化されたオブジェクトはテキストではなくバイナリデータであるため、Readerを使用してシリアル化されたオブジェクトを読み取ることはできません。

0

TCP guarantiesデータの完全性。したがって、追加の小切手合計は必要ありません。

デシリアライズは、何か問題が発生した場合を除いて失敗します。

0

質問が分かりません。シリアライズされたオブジェクトは、BufferedReaderではなく、ObjectInputStreamで読み込む必要があります。

関連する問題