我想寫入一個文件的序列化爲JSON格式的對象數組。我試圖用兩種不同的方式寫下來,如下所示。兩個相同的文件具有不同的文件大小基於從C#編寫的方式
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();
儘管兩個文件的內容相同,但它們具有不同的文件大小。實際上第一個文件的大小正好是第二個文件的兩倍。我試着比較使用textpad的輸出,它說它們是激動人心的相同。爲什麼他們有不同的文件大小?
我在Windows 7 32位運行此,.NET4
感謝
你有沒有試過打開在WinHex或類似的東西中產生的兩個文件?這可以讓你在原始十六進制中識別它們之間的差異,並可以幫助你找出導致它們被保存爲不同文件大小的原因。 – GeorgePotter 2012-04-10 14:17:28
「兩個相同的文件具有不同的文件大小」。這僅僅是一個矛盾。 – EJP 2012-04-11 00:38:58
@EJP對,這是真的,但一些文件比較實用程序顯示文件相同。我現在有同樣的問題。問題是如何(在我的情況下,第二個文件大小約爲200%!)。 – Andrew 2017-11-03 12:09:01