Создание Windows-приложений на основе Visual C#




Чтение и запись текстовых файлов


Для чтения и записи файлов, содержащих только текст, используются классы StreamReader и StreamWriter. Класс Stream Reader наследуется от класса TextReader, который считывает строки из стандартного текстового файла. Класс StreamWriter наследуется от класса TextWriter, записывающего символы в поток в специальном кодировании.

Создайте новое консольное приложение и назовите его FileStream. Скомпилируйте приложение (Ctrl+F5). В папке проекта создайте текстовый документ 1.txt. Откройте его в блокноте (или в приложении Notepad C#) и напишите в нем любой текст на русском и английском языках, сохранив затем его в кодировке Unicode. Выведем теперь записанный текст в окно консольного приложения. Переходим в код FileStream и подключаем пространство имен:

using System.IO;

В методе Main добавляем код:

[STAThread] static void Main(string[] args) { //Cоздаем экземпляр Chitat класса StreamReader и указываем путь к файлу и его название StreamReader Chitat = new StreamReader("1.txt"); // Объявляем переменную A. string A; //В переменную А считываем содержимое файла A = Chitat.ReadToEnd(); //Закрываем поток Chitat.Close(); //Выводим переменную A в окно консольного приложения. Console.WriteLine(A); }

Когда вы работаете с файлом, например, редактируете документ Microsoft Word, вы не сможете удалить его или переместить — потому что приложение занято и поток открыт. Только завершив работу с документом и, следовательно, закрыв поток, можно перемещать его или открывать с помощью других приложений. Аналогично, в этом примере мы закрываем поток, вызывая метод Close, освобождая тем самым задействованные системные ресурсы.

Запускаем приложение. В консольном окне появляется текст, считанный из файла (рис. 2.32 ).

 Чтение текста из файла

Рис. 2.32.  Чтение текста из файла

Добавим теперь объект класса StreamWriter, который будет записывать текст в файл:

[STAThread] static void Main(string[] args) { //Cоздаем экземпляр Chitat класса StreamReader и указываем путь к файлу и его название StreamReader Chitat = new StreamReader("1.txt"); // Объявляем переменную A. string A; //В переменную А считываем содержимое файла A = Chitat.ReadToEnd(); //Закрываем поток Chitat.Close(); //Выводим переменную A в окно консольного приложения. Console.WriteLine(A); //Cоздаем экземпляр Pisat класса StreamWriter StreamWriter Pisat = new StreamWriter("1.txt", true, System.Text.Encoding.Unicode); //Вызываем метод Write экземпляра Pisat Pisat.Write("Добавляем текст"); //Закрываем поток Pisat.Close();

// Для того, чтобы не переходить в директорию //для просмотра файла вручную, выведем его еще раз StreamReader ChitatSnova = new StreamReader("1.txt"); string B; B = ChitatSnova.ReadToEnd(); ChitatSnova.Close(); Console.WriteLine(B);

}

Листинг 2.14.

Метод Write добавил строку в файл (рис. 2.33):

Чтение и запись текста из файла

Рис. 2.33.  Чтение и запись текста из файла

На диске, прилагаемом к книге, вы найдете приложение FileStream (Code\Glava2\ FileStream).




Содержание  Назад  Вперед