JSON 形式にシリアル化されたオブジェクトの配列をファイルに書き込もうとしています。以下に示すように、2つの異なる方法で記述しようとしています。
ToSerialise[] Obj = new ToSerialise[10];
for (int i = 0; i < 10; i++)
{
Obj[i] = new ToSerialise();
}
//First form of serialising
UnicodeEncoding uniEncoding = new UnicodeEncoding();
String SerialisedOutput;
SerialisedOutput = JsonConvert.SerializeObject(Obj, Formatting.Indented);
FileStream fs1 = new FileStream(@"C:\file1.log", FileMode.CreateNew);
fs1.Write(uniEncoding.GetBytes(SerialisedOutput), 0, uniEncoding.GetByteCount(SerialisedOutput));
fs1.Close();
//Second form of serialising
FileStream fs2 = new FileStream(@"C:\file2.log", FileMode.CreateNew);
StreamWriter sw = new StreamWriter(fs2);
JsonWriter jw = new JsonTextWriter(sw);
JsonSerializer js = new JsonSerializer();
jw.Formatting = Formatting.Indented;
js.Serialize(jw, Obj);
jw.Close();
fs2.Close();
両方のファイルの内容は同じですが、ファイル サイズが異なります。実際には、最初のファイルは 2 番目のファイルのちょうど 2 倍のサイズです。テキストパッドを使用して出力を比較してみましたが、まったく同じであると表示されています。ファイルサイズが異なるのはなぜですか?
これをWindows 7 32ビット、.Net4で実行しています
ありがとう