Сереализация, бинарный формат, или лучший способ хранения информация - 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(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д