我的意圖是寫一個byte[]
到一個文件。代碼段低於:這個代碼的爲什麼這樣的文件內容差異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.Write()
時使用它轉儲被存儲在數組中的值。但是StreamWriter.BaseStream.Write(byte[],int offset, int length)
,這些值完全不同。這是什麼原因?
我建議你不要使用與文本一起工作的類(如'StreamWriter')來處理二進制數據。 – svick 2012-01-11 11:49:05