2

私はBinaryFormatterを使用してファイルを読み書きする(デシリアライズしてシリアル化する)方法を学ぶ過程で、BinaryReaderBinaryWriterに遭遇しました。これは同じことをしているようです。BinaryWriterとBinaryFormatter.Serializeの違いは?

BinaryFormatter.Serialize()BinaryWriterの間に若干の微妙な違いがありますか?またはBinaryWriterは、よりコンパクトな方法で、同じアクションをBinaryFormatter.Serialize()と同じように実行していますか?

+0

潜在CodeProjectの記事[マニュアルシリアライズ対にBinaryFormatter](http://www.codeproject.com/Articles/311944/BinaryFormatterを - または - 手動シリアル化) – jrbeverly

答えて

4

BinaryWriterは、ストリームにバイナリ形式のプリミティブ型を書き込むために使用され、特定のエンコーディングで文字列を書き込むことをサポートします。 BinaryFromatterは、オブジェクトまたはグラフ全体をバイナリ形式にシリアル化する役割を担います。だから、BinaryWriterは、BinaryFormatterのようなもののはるかに基本的なフォームだと言うことができると思います。

私はここで、この情報を得た:あなたにいくつかの使用であるかもしれないBinaryWriter & BinaryFormatter

3

BinaryWriterとBinaryFormatterは2つの異なるものです。

BinaryFormatterはシリアル化に使用されます。これは、ファイル、ネットワークストリームなどに書き込むことができるバイナリ表現にC#オブジェクトをマップするのに役立ちます。

しかし、BinaryWriterはC#オブジェクトをバイナリデータにマップするのに役立ちません。名前のとおり、バイナリデータを書き込むことができます。だから、intのようなプリミティブ型を与えると、バイナリに変換して書き出します。あなたがそれを読む必要があるときに書いた後、あなたはBinaryReaderを使う必要があり、あなたはintを読みなければならないと何とか知っていなければなりません。だからあなたは何とか自分のデータをシリアル化しなければならない。

BinaryFormatterはバイナリデータを書き込むことができるようにBinaryWriterを使用していますが、オブジェクトを自動的にシリアライズおよびデシリアライズするための他の多くのジョブを実行します。

関連する問題