C#でバイナリファイルにテキストを書き込んでいますが、文字列と文字配列の書き込みの量に違いがあります。System.IO.BinaryWriterを使用しており、書き込みが発生するときにBinaryWriter.BaseStream.Lengthを監視しています。これらは私の結果です:
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());
}
ASCII文字を3つしか書き込んでいないのに、文字列のオーバーロードが4バイトを書き込む理由がわかりません。誰かがこれを説明できますか?