Двоичные файлы для загрузки в программу
Дв. файлы с последовательным доступом к записям
Для сохранения данных в файле и последующей загрузки файла в программу. Просмотр текстовым редактором бессмысленен.
1. Запись представляет собой совокупность отдельных переменных, которые могут составлять информационную часть объекта.
Примечание.
А. Для вывода и ввода записей рекомендуется использовать двоич- ный поток, создаваемый классами BinaryWriter и BinaryReader.
Б. Понятие записи в этом случае – это логическое объединение данных, например, одного объекта. В отличие от строк, двоичные дан- ные друг от друга ничем не отделяются.
Форматирование:
не требуется, так как данные выводятся в их внутреннем (двоичном)
формате.
Вывод данных в файл:
FileStream fs;
int i = 10;
double d = 1023.56;
string str = "Привет студентам!";
fs = new FileStream ("testdata", FileMode.Create); BinaryWriter dataOut = new BinaryWriter (fs); dataOut.Write (i);
dataOut.Write (d); dataOut.Write (str);
Чтение и загрузка в базу данных:
только последовательное методами Read...() в цикле:
fs = new FileStream ("testdata", FileMode.Open); BinaryReader dataIn = new BinaryReader(fs);
i = dataIn.ReadInt32();
d = dataIn.ReadDouble(); str = dataIn.ReadString();
2. Сохранение и восстановление объектов.
Примечание. Для вывода и ввода объектов рекомендуется исполь- зовать сериализацию (сохранение) и десериализацию (восстановление) объектов.
using System; using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
[Serializable] class Student
{
private int kurs ; // номер курса
private string fio; // Фамилия студента
public Student (int k, string f)
{ kurs = k; fio = f; }
}
class SaveObj
{
public static void Main()
{
FileStream fs;
Student st1 = new Student (1, "Тенишева"); Student st2 = new Student (2, "Иванов");
// Создание потока
fs = new FileStream ("Student.dat", FileMode.Create);
// Воспользуемся двоичным форматированием
BinaryFormatter bf = new BinaryFormatter();
// Сохраним объект в файле в двоичном виде bf.Serialize (fs, st1); bf.Serialize (fs, st2); fs.Close();
// Восстановим из файла сериализованный объект
fs = new FileStream ("Student.dat", FileMode.Open);
Student newSt1 = (Student) bf.Deserialize (fs); Student newSt2 = (Student) bf.Deserialize (fs);
}
}
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.