Учебное пособие по C # Stream: StreamReader, StreamWriter с примером

Содержание:

Anonim

В файловых операциях C # потоки обычно используются для чтения и записи файлов. Поток - это дополнительный уровень, созданный между приложением и файлом. Поток используется для обеспечения плавных операций чтения и записи в файл.

Потоки обычно используются при чтении данных из больших файлов. Используя потоки, данные из больших файлов разбиваются на небольшие фрагменты и отправляются в поток. Затем эти фрагменты данных можно прочитать из приложения.

Причина, по которой его разбивают на небольшие части, заключается в том, что чтение большого файла за один раз влияет на производительность. Если бы вы считали данные, скажем, из файла размером 100 МБ за один раз, ваше приложение могло просто зависнуть и стать нестабильным. Тогда лучший подход - использовать потоки, чтобы разбить файл на управляемые части.

Таким образом, когда операция записи выполняется в файл, данные, которые должны быть записаны, сначала записываются в поток. Затем данные из потока записываются в файл. То же самое и с операцией чтения. В операции чтения данные сначала передаются из файла в поток. Затем данные считываются из приложения через поток. Давайте посмотрим на пример того, как мы можем читать и писать, используя потоки.

В этом руководстве вы узнаете:

  • Читатель потока
  • Stream Writer

Читатель потока

Считыватель потоков используется для чтения данных из файла с помощью потоков. Данные из файла сначала считываются в поток. После этого приложение считывает данные из потока.

В нашем примере мы предположим, что у нас есть файл на диске D с именем Example.txt. Это будет простой текстовый файл, состоящий из 2 строк, как показано ниже.

  • Guru99 - .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();}}}

Пояснение к коду: -

  1. Сначала мы объявляем объект чтения потока. Объект чтения потока используется в C # для определения потока из файла в приложение. Данные будут передаваться из файла в поток всякий раз, когда данные читаются из файла. File.OpenText используется для открытия файла "Example.txt" в режиме только для чтения. Затем обработчик файла отправляется объекту чтения потока.
  2. Затем мы определяем временную переменную s, которая будет использоваться для чтения всех данных из файла.
  3. Затем мы используем метод чтения потока ReadLine для чтения каждой строки из буфера потока. Когда мы выполняем эту операцию, каждая строка сначала будет перенесена из файла в буфер. Затем строковая строка будет перенесена из буфера в переменную 's'. Затем мы записываем содержимое строки s в консоль.

Когда приведенный выше код установлен и проект запускается с помощью Visual Studio, вы получите следующий результат.

Выход:-

Из выходных данных вы можете видеть, что Stream Reader прочитал обе строки из файла. Наконец, строки строки, прочитанной из потока, были отправлены в Консоль.

Stream Writer

Модуль записи потока используется для записи данных в файл с помощью потоков. Данные из приложения сначала записываются в поток. После этого поток записывает данные в файл. Давайте посмотрим на пример того, как мы можем использовать потоки для записи данных из файла. Введите приведенный ниже код в файл 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();}}}

Пояснение к коду: -

  1. Сначала мы объявляем объект записи потока. Объект записи потока используется в C # для определения потока. Затем поток используется для записи данных из приложения в файл. Данные будут передаваться из приложения в поток всякий раз, когда необходимо записать данные. Команда File.AppendText используется для открытия файла «Example.txt» в режиме добавления. Затем обработчик файла отправляется объекту записи потока.
  2. Мы используем метод записи потока Writeline для записи строки «Guru99 - ASP.Net» в поток. Затем строка из потока будет записана в файл.
  3. Затем мы закрываем средство записи потока после записи в файл. Обычно рекомендуется закрывать обработчики файлов, когда файл больше не требуется для записи.
  4. Наконец, мы снова читаем содержимое файла и записываем его в журнал консоли. Это необходимо для проверки того, была ли строка записана в файл.

Когда приведенный выше код установлен и проект запускается с помощью Visual Studio, вы получите следующий результат.

Выход:-

Из вывода видно, что строка «Guru99 - ASP.Net» была успешно добавлена ​​в файл. В консоли видны все 3 строки текста.

Резюме

  • Потоки используются как промежуточный уровень между приложением и файлом.
  • StreamReader используется всякий раз, когда требуется прочитать данные из файла.
  • Streamwriter используется всякий раз, когда необходимо записать данные в файл.