私はファイルにbyte[]
を書くことを意図しています。コードスニペットは、以下である:StreamWriter.Write()
を使用する場合、このコードスニペットのなぜこのようなファイルの内容の違いがC#
byte[] stream = { 10, 20, 30, 40, 60 };
for (int i = 0; i < 2; i++)
{
FileStream aCmdFileStream = new FileStream(@"c:\binarydata.txt", FileMode.Append, FileAccess.Write, FileShare.None);
StreamWriter aStreamWriter = new StreamWriter(aCmdFileStream);
for (int ii = 0; ii < stream.Length; ii++)
{
aStreamWriter.Write(stream[ii]);
aStreamWriter.WriteLine();
aStreamWriter.BaseStream.Write(stream,0,stream.Length);
}
aStreamWriter.Close();
}
出力
(<
(<
(<
(<
(<10
20
30
40
60
(<
(<
(<
(<
(<10
20
30
40
60
それが配列に格納された値をダンプ。しかし、StreamWriter.BaseStream.Write(byte[],int offset, int length)
の値は全く異なります。これの理由は何ですか?
バイナリデータを扱うためのテキスト(「StreamWriter」など)を扱うためのクラスを使用しないことをお勧めします。 – svick