Чтение и запись текстовых файлов
Для чтения и записи файлов, содержащих только текст, используются классы 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, который будет записывать текст в файл:
Листинг 2.14.
(html, txt)
Метод Write добавил строку в файл (рис. 2.33):
Рис. 2.33. Чтение и запись текста из файла
На диске, прилагаемом к книге, вы найдете приложение FileStream (Code\Glava2\ FileStream).