Сереализация, бинарный формат, или лучший способ хранения информация - C#

Узнай цену своей работы

Формулировка задачи:

Много читал по поводу бинарных файлов, систем счисления, способов хранения информация и ничего не понял Допустим есть класс, мне нужно сохранить единственное его свойство "Name", значение свойства "hellow". Если я сохраняю это свойство через сериализацию, то размер файла 187+ байт, если сохраняю в текстовый файл *.txt строку "hellow" размер файла - 14 байт. Я конечно понимаю, что в бинарный файл через сериализацию сохранена еще информация об объекте, но все равно зачем использовать сериализацию если размер файла в 10 раз больше? Для чего нужна сериализация, если все свойства можно хранить в текстовом формате? Из вики - "десятичное число 123 в текстовом файле будет представлено побайтно (для ASCII, к примеру), посимвольно: 00110001b (31h), 00110010b (32h), 00110011b (33h), а в двоичном файле: если оно беззнаковое, однобайтное, для простоты, 01111011b. b указывает на двоичную систему счисления, h - на шестнадцатиричную. Символы цифр в таблице ASCII начинаются со смещения 30h. Таким образом, в текстовом файле n-значное десятичное число будет занимать n байт, а в двоичном - приблизительно, более, чем в два раза меньше." Как в C# сохранить не свойство класса, а просто строку(несколько строк string или число int) в бинарный файл? Вообщем я хочу найти способ хранения информации, который занимает самый меньший размер. И какой способ является самым быстрым по загрузке? Не понял, какая система счистления является основной, в которой хранится вся информация и какую воспринимает процессор. В одних источниках пишут что двоичная, типа - 00110001 , другие пишут что современные компьютеры давно не используют двоичную систему, а используют шестнадцатиричную - 31h, так какую систему счистлений получает процессор? Или он может получить информацию и в двоичном, и в шестнадцатиричном виде, от чего это зависит?

Решение задачи: «Сереализация, бинарный формат, или лучший способ хранения информация»

textual
Листинг программы
namespace WindowsFormsApplication1
{
        public partial class Form1 : Form
        {
                string path = "test.dat";
                public Form1()
                {
                        InitializeComponent();
                }
                private void button1_Click(object sender, EventArgs e)
                {
                        FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write);
                        BinaryWriter bw = new BinaryWriter(fs, Encoding.Default);
                        bw.Write(1234567890);
                        bw.Close();
                        fs.Close();
                }
        }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.643 из 5
Похожие ответы