我正在寫文本到C#中的二進制文件,並看到寫入字符串和字符數組之間寫入數量的差異。我正在使用System.IO.BinaryWriter並在發生寫入時觀察BinaryWriter.BaseStream.Length。這些是我的結果:寫字符串與System.IO.BinaryWriter字符數組的差異
using(BinaryWriter bw = new BinaryWriter(File.Open(「data.dat」), Encoding.ASCII))
{
string value = 「Foo」;
// Writes 4 bytes
bw.Write(value);
// Writes 3 bytes
bw.Write(value.ToCharArray());
}
我不明白爲什麼字符串重載在寫入3個ASCII字符時寫入4個字節。任何人都可以解釋嗎?
順便說一句 - 如果你只是想序列化你的數據,有API可以幫助解決這個問題 - 任何內置的串行器,或者有一系列的第三方可用。通常比寫自己的讀/寫代碼大量更強大... – 2009-06-18 19:48:08