W.Write(i); // Запись

w.Close ();

}

else {

BinaryReader r = new BinaryReader(fs);

for (int i = 0; i < 10; i++)

Console.WriteLine(r.ReadInt16());

r.Close();

}

fs.Close();

}

TextReader И TextWriter

В абстрактных классах TextReader и TextWriter данные рассматриваются как последовательный поток символов (то есть, просто как текст). TextReader имеет следующие методы: Close, Peek (Считывание элемента данных), Read, ReadBlock, ReadLine и ReadToEnd. TextWriter содержит методы типа Close, Flush, Write и WriteLine. Перегруженные методы Read читают символы из потока.

StringReader и StringWriter являются производными классами от классов TextReader и TextWriter соответственно. StringReader и StringWriter читают и записывают данные в символьную строку, которая сохраняется в базовом объекте StringBuilder. Конструктор StringWriter может принимать объект StringBuilder.

StreamReader и StreamWriter также являются производными классами от классов TextReader и TextWriter. Они читают текст из объекта и записывают текст в объект Stream. Так же как и в случае классов BinaryReader и BinaryWriter, можно создать объект Stream и передать его в конструктор StreamReader или StreamWriter. Следовательно, эти классы могут использовать любые унаследованные от Stream классы хранения данных.

 

// Программа 3. Запись и чтение символьных строк в/из файла. Программу необходимо выполнить дважды: первый раз — чтобы создать файл, а затем второй раз — чтобы прочитать его.

void Main() {

FileStream fs = new FileStream("TextTest.txt", FileMode.OpenOrCreate);

if (fs.Length == 0) {

Console.WriteLine("Writing Data..."); // Запись данных

StreamWriter sw = new StreamWriter(fs);

Sw.Write(100); // Запись

sw.WriteLine(" One Hundred"); // Сто

sw.WriteLine("End of File"); // Конец Файла

sw.Close();

}

else {

String text; // Строка

StreamReader sr = new StreamReader(fs);

text = sr.ReadLine(); // текст

while (text!= null) {

Console.WriteLine(text);

text = sr.ReadLine();

}

sr.Close ();

}

fs.Close ();

}

Класс File

Класс File содержит методы для создания и открытия файлов, которые возвращают объекты FileStream, StreamWriter или StreamReader, производящие фактическое чтение и запись. Перегруженный метод Create возвращает объект FileStream. Метод CreateText возвращает StreamWriter. Перегруженный метод Open в зависимости от передаваемых параметров может создавать новый файл или открывать существующий для чтения или записи. Возвращаемый объект — объект FileStream. Метод OpenText возвращает StreamReader. Метод OpenRead возвращает объект FileStream. Метод OpenWrite возвращает объект типа FileStream.

Класс File содержит также методы копирования, удаления и перемещения файлов. К тому же, мы можем проверить существование файла. Нижеперечисленные атрибуты файла можно прочитать и изменить:

· время создания;

· время последнего обращения;

· последнее время записи;

· архивный, скрытый, обычный, системный или временный;

· сжатый, зашифрованный;

· только для чтения;

· файл — это каталог?

// Программа 4. Пример использование методов класса File и FileInfo.

void Main() {

File.Delete("file2.txt"); // Удалить файл "file2.txt"

StreamWriter sw = System.IO.File.CreateText("file.txt");

sw.Write ("Пусть каждый день твой будет светлым, ");

sw.WriteLine("приятным, радостным и щедрым!");

sw.Write("Пусть будет ярким, динамичным,");

sw.WriteLine("во всем удачным и отличным!");

sw.Close();

File.Move("file.txt", "file2.txt");

FileInfo fileInfo = new FileInfo("file2.txt");

Console.WriteLine("File {0} is {1} bytes in length, created on {2}",

fileInfo.FullName,fileInfo.Length, fileInfo.CreationTime);

Console.WriteLine("");

StreamReader sr = fileInfo.OpenText();

String s = sr.ReadLine();

while (s!= null) {

Console.WriteLine(s);

s = sr.ReadLine();

}

sr.Close();

Console.WriteLine("");

}

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: