3

System.IO.BinaryReaderを使用してバイナリファイルを読み込む場合、マルチバイトのReadメソッドを使用しても、バイト順序は影響を受けないようです。

BinaryReader br = new BinaryReader(fs, System.Text.Encoding.BigEndianUnicode);

BinaryReader br = new BinaryReader(fs, System.Text.Encoding.Unicode);

私のために同じ結果を生み出しています。

データ構造を読み込んでいる間、常にバイト順序を逆にする必要があるため、これは私に多くのフラストレーションを引き起こしています。

スクリーンショット-ビッグエンディアンUnicode

スクリーンショット-リトルエンディアンUnicode

これを.NET3から4.5でテストしました

4

1 に答える 1

8

BinaryReaderEncodingは、データを処理するときにのみ使用しstringます (ほとんど、ちょうどReadString())。ReadBytesなどは関係ありませんEncoding-バイナリデータを読み取るだけです。を呼び出すだけなのでReadBytes、この ( Encoding) はルックインされません。

データの順序が正しくない場合、ファイルが で作成されていないように思えますBinaryWriter。で作成されていない場合はBinaryWriterBinaryReaderおそらくそれほど有用ではありません - を使用できますStream

于 2012-10-16T05:20:51.410 に答える