Работа с файлами данных в Visual Studio .Net (2 часа)
Для работы с бинарными файлами используется объект FileStream, создающий канал связи с файлом. Для чтения из файла используется объект BinaryReader, для записи в файл – объект BinaryWriter. Аналогично, для текстовых файлов используются объекты StremReader и StreamWriter соответсвенно. Эти объекты не наносятся на форму а динамически создаются в ходе работы приложения, поэтому они отсутствуют на панели инструментов ToolBox. Порядок действий по чтению данных из файла следующий: 1) открыть файл; 2) открыть поток чтения данных из файла; 3) создать объект BinaryReader или StreamReader; 4) прочесть данные; 5) закрыть поток чтения данных из файла. Объект FileStream создается со следующими атрибутами: FileStream(имя файла, вид работы с файлом, операции с файлом). Имя файла должно быть полным, т.е. включать в себя все вложенные папки. Рекомендуется получать имя файла с помощью элемента OpenFileDialog. Для чтения данных из файла используются методы ReadInt32, ReadSingle и другие, для каждого типа переменной используется свой метод. Для чтения данных из текстовых файлов используются следующие методы объекта StreamReader: Read(массив, начало, количество символов) – считывает заданное количество символов в символьный массив, начиная с аргумента, указанного в позиции начало. Если данный метод не имеет аргументов, то просто считывается очередной символ; ReadLine – считывает очередную строку из текстового файла; ReadToEnd – считывает все данные из текстового файла. Рассмотрим пример. Пусть имя файла определено с помощью объекта OpenFileDialog и помещено в переменную Fil. Необходимо прочитать из этого файла значения переменных La и Ca типа Single, и значения переменных N и L типа Integer. Код, реализующий эти операции, следующий:
Visual Basic.Net:
Dim Fil As String Dim La, Ca As Single Dim N, L As Integer Fil = OpenFileDialog1.FileName OpenFileDialog1.OpenFile() Dim BR As BinaryReader Dim FS As FileStream FS = New FileStream(Fil, FileMode.Open, FileAccess.Read) BR = New BinaryReader(fs) La = BR.ReadSingle Ca = BR.ReadSingle N = BR.ReadInt32 L = BR.ReadInt32 BR.Close() FS.Close() Visual C#.Net: string fil; Single La, Ca; Int16 N, L; fil = openFileDialog1.FileName; FileStream FS=new FileStream(fil,FileMode.Open,FileAccess.Read); BinaryReader BR = new BinaryReader(FS); La = BR.ReadSingle(); Ca = BR.ReadSingle(); N = BR.ReadInt16(); L = BR.ReadInt16(); BR.Close(); FS.Close(); Для чтения всех данных из текстового файла можно использовать следующий код (имя файла также определяется с помощью объекта OpenFileDialog и помещается в переменную Fil): Visual Basic.Net:
Dim Fil As String Dim Txt As String Fil = OpenFileDialog1.FileName Dim SR As StreamReader Dim FS As FileStream FS = New FileStream(Fil, FileMode.Open) SR = New StreamReader(fs) Txt=SR.ReadToEnd SR.Close() FS.Close() Visual C#.Net: string fil,txt; fil = openFileDialog1.FileName; FileStream FS=new FileStream(fil,FileMode.Open,FileAccess.Read); StreamReader SR = new StreamReader(FS); txt = SR.ReadToEnd(); SR.Close(); FS.Close(); Порядок действий по записи данных в файл следующий: 1) создать файл или открыть существующий файл; 2) создать поток записи данных в файл; 3) создать объект BinaryWriter или StreamWriter; 4) записать данные в файл; 5) закрыть поток записи в файл. Для записи данных в файл используется метод Write объекта BinaryWriter. Данный метод является общим для всех типов переменных. Для записи данных в текстовый файл используются следующие методы объекта StreamWriter: Write(Data) – записывает данные, указанные в аргументе Dara, в файл. Этот метод может применяться для данных любых типов, кроме типа Data. Для записи дат их необходимо предварительно преобразовывать в строки; WriteLine(Data) – записывает очередную строку в файл. Рассмотрим пример. Пусть имя файла определено с помощью объекта SaveFileDialog и помещено в переменную Fil. Требуется записать в этот файл значения переменных La и Ca типа Single и переменных N и L типа Integer. Код, реализующий эти операции, следующий: Visual Basic.Net:
Dim Fil As String Dim La, Ca As Single Dim N, L As Integer Fil = Savefiledialog1.FileName Dim BW As BinaryWriter Dim FS As FileStream
FS = New FileStream(Fil, FileMode.OpenOrCreate, FileAccess.ReadWrite) BW = New BinaryWriter(FS) BW.Write(La) BW.Write(Ca) BW.Write(N) BW.Write(L) BW.Close() FS.Close() Visual C#.Net: string fil; Single La=0, Ca=0; Int16 N=0, L=0; fil = openFileDialog1.FileName; FileStream FS=new FileStream(fil,FileMode.Open,FileAccess.Read); BinaryWriter BW = new BinaryWriter(FS); BW.Write(La); BW.Write(Ca); BW.Write(N); BW.Write(L); BW.Close(); FS.Close(); В программах на C# обязательно присвоение значений переменным. Аналогично осуществляется запись в текстовые файлы. Текстовые файлы по умолчанию сохраняются в кодировке UTF-8. Кроме неё, в Windows имеется ещё три вида кодировки. Если необходимо использовать другую кодировку, следует добавить соответствующий аргумент к объекту StreamWriter: StreamWriter(объект FileStream,вид кодировки). Также можно выделить следующие методы объекта FileStream: Lock(позиция, длина) – блокирует открытый файл или его часть с заданной позиции заданной длины; Seek(смещение, позиция) – устанавливает текущую позицию в файле путём смещения относительно заданной позиции. Константа позиция имеет следующие значения: Begin (смещение относительно начала файла), Current (смещение относительно текущей позиции в файле), End (смещение относительно конца файла). Следует отметить, что объекты чтения из записи из файлов принадлежат к базовому классу System.IO, поэтому этот класс необходимо предварительно импортировать в проект.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|