Я пытаюсь записать в файл массив объектов, сериализованных в формате 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();
Несмотря на то, что содержимое обоих файлов одинаково, они имеют разный размер файла. На самом деле первый файл в два раза больше второго. Я попытался сравнить результат с помощью текстовой панели, и он говорит, что они являются абсолютно одинаковыми. Почему у них разные размеры файлов?
Я бегу это на Windows 7 32 битной, .Net4
Благодаря
Вы пытались открыть два файла, созданные в WinHex или что-то подобное? Это позволит вам определить различия между ними в шестнадцатеричном шестнадцатеричном формате и может помочь вам узнать, что заставляет их сохранять разные размеры файлов. – GeorgePotter
«Два одинаковых файла имеют разный размер файла». Это просто противоречие в терминах. – EJP
@ EJP Правильно, это правда, но некоторые утилиты сравнения файлов показывают файлы одинаковыми. У меня такая же проблема. Вопрос в том, как (и, в моем случае, второй файл имеет размер около 200%!). – Andrew