Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Сериализация дабла


Автор: Prehistorik 19.7.2006, 13:36
Код

      double d = Math.PI;
      System.IO.FileInfo inf = new System.IO.FileInfo ( @"D:\1.dat" );
      System.IO.Stream s = inf.Open ( System.IO.FileMode.Open, System.IO.FileAccess.Write );
      System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter ( );
      bf.Serialize ( s, d );
      s.Close ( );


Простенький код. Но этот код генерирует файл размером 59 байт вместо 8ми. Соответственно вопрос. Как записать не объект double, а только его значение.? И, соответственно как его потом оттуда прочитать?! 

Автор: mr.DUDA 19.7.2006, 13:55
А зачем именно сериализовать ? Можно обычным StreamWriter-ом записать число как число. 

Автор: Naum 19.7.2006, 13:59
mr.DUDA, а почему StreamWriter-ом? По-моему лучше BinaryWriter-ом.  

Автор: mr.DUDA 19.7.2006, 21:13
Naum, дело вкуса. Хоть чем угодно. Главное - это различие между сериализацией и обычной записью в поток smile 

Автор: Naum 20.7.2006, 08:49
mr.DUDA,
Цитата(mr.DUDA @  19.7.2006,  21:13 Найти цитируемый пост)
Naum, дело вкуса.

Извини, но я не соглашусь, просто, если StreamWriter-ом, то файл получается больше, и открыть его можно обычным блокнотом. Потом при чтении позиционировать по моему труднее. Так что я выбираю BinaryWriter.  smile 
 

Автор: mr.DUDA 20.7.2006, 10:58
Naum, да ты прав. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)