Учебное пособие по C# Stream:StreamReader, StreamWriter с примером
В файловых операциях C# потоки обычно используются для чтения и записи файлов. Поток — это дополнительный слой, созданный между приложением и файлом. Поток используется для обеспечения плавного чтения и записи в файл.
Потоки обычно используются при чтении данных из больших файлов. Используя потоки, данные из больших файлов разбиваются на небольшие фрагменты и отправляются в поток. Затем эти фрагменты данных можно прочитать из приложения.
Причина разбиения его на небольшие фрагменты связана с влиянием на производительность чтения большого файла за один раз. Если бы вы считывали данные, скажем, из файла размером 100 МБ за один раз, ваше приложение могло бы просто зависнуть и стать нестабильным. Лучшим подходом будет использование потоков для разбиения файла на управляемые фрагменты.
Таким образом, когда операция записи выполняется в файле, данные, которые должны быть записаны, сначала записываются в поток. Затем данные из потока записываются в файл. То же самое касается операции чтения. При операции чтения данные сначала передаются из файла в поток. Затем данные считываются из приложения через поток. Давайте рассмотрим пример того, как мы можем читать и писать с помощью потоков.
В этом уроке вы узнаете-
- Потоковое чтение
- Запись потока
Потоковое чтение
Потоковое чтение используется для чтения данных из файла с использованием потоков. Данные из файла сначала считываются в поток. После этого приложение считывает данные из потока.
Для нашего примера предположим, что у нас есть файл на диске D с именем Example.txt. Файл будет простым текстовым файлом и будет состоять из 2 строк, как показано ниже
- Гуру99 — .Net
- Guru99-C#
Для нашего примера мы создадим простое консольное приложение и будем работать с файловыми потоками
Давайте рассмотрим пример того, как мы можем использовать потоки для чтения данных из файла. Введите приведенный ниже код в файл program.cs.
using System; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { static void Main(string[] args) { String path = @"D:\Example.txt"; using (StreamReader sr = File.OpenText(path)) { String s = ""; while ((s = sr.ReadLine()) != null) { Console.WriteLine(s); } } Console.ReadKey(); } } }
Пояснение кода:-
- Во-первых, мы объявляем объект чтения потока. Объект чтения потока используется в C# для определения потока из файла в приложение. Данные будут передаваться из файла в поток всякий раз, когда данные считываются из файла. File.OpenText используется для открытия файла «Example.txt» в режиме только для чтения. Затем обработчик файла отправляется объекту чтения потока.
- Далее мы определяем временную переменную «s», которая будет использоваться для чтения всех данных из файла.
- Затем мы используем метод чтения потока ReadLine для чтения каждой строки из буфера потока. При выполнении этой операции каждая строка будет сначала перенесена из файла в буфер. Затем строка строки будет передана из буфера в переменную ‘s’. Затем мы записываем содержимое строки «s» в консоль.
Когда приведенный выше код установлен и проект запускается с помощью Visual Studio, вы получите приведенный ниже вывод.
Вывод:-
Из вывода видно, что Stream Reader прочитал обе строки из файла. Наконец, строки строки, прочитанные из потока, были отправлены в Консоль.
Запись потока
Средство записи потока используется для записи данных в файл с использованием потоков. Данные из приложения сначала записываются в поток. После этого поток записывает данные в файл. Давайте рассмотрим пример того, как мы можем использовать потоки для записи данных из файла. Введите приведенный ниже код в файл program.cs.
using System; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { static void Main(string[] args) { String path = @"D:\Example.txt"; using (StreamWriter sr = File.AppendText(path)) { sr.WriteLine("Guru99 - ASP.Net"); sr.Close(); Console.WriteLine(File.ReadAllText(path)); } Console.ReadKey(); } } }
Пояснение кода:-
- Во-первых, мы объявляем объект записи потока. Объект записи потока используется в C# для определения потока. Затем поток используется для записи данных из приложения в файл. Данные будут передаваться из приложения в поток всякий раз, когда данные необходимо записать. Команда File.AppendText используется для открытия файла «Example.txt» в режиме добавления. Затем обработчик файла отправляется объекту записи потока.
- Мы используем метод записи потока Writeline для записи строки «Guru99 – ASP.Net» в поток. Затем строка из потока будет записана в файл.
- Затем мы закрываем средство записи потока после записи в файл. Обычно рекомендуется закрывать обработчики файлов, когда файл больше не требуется для записи.
- Наконец, мы снова читаем содержимое файла и записываем его в журнал консоли. Это нужно для проверки того, была ли строка записана в файл.
Когда приведенный выше код установлен и проект запускается с помощью Visual Studio, вы получите приведенный ниже вывод.
Вывод:-
Из вывода видно, что строка «Guru99 — ASP.Net» успешно добавлена в файл. Все 3 строки текста можно увидеть в консоли.
Сводка
- Потоки используются как промежуточный уровень между приложением и файлом.
- StreamReader используется всякий раз, когда данные должны быть прочитаны из файла.
- Потоковод используется всякий раз, когда данные необходимо записать в файл.
Язык C
- C++ для цикла с ПРИМЕРОМ
- Оператор C++ Switch Case с ПРИМЕРОМ
- C++ динамическое выделение массивов с примером
- Базовый ввод/вывод C++:пример Cout, Cin, Cerr
- Стек в C++ STL с примером
- Структура С++ с примером
- std::list в C++ с примером
- Учебное пособие по абстрактному классу C # с примером:что такое абстракция?
- Учебное пособие по коллекциям C# с примерами
- Java BufferedReader:как читать файл в Java с примером