Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Работа с файлами данных в 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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...