Підручник з потоку C #: StreamReader, StreamWriter з прикладом

Зміст:

Anonim

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

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

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

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

У цьому підручнику ви дізнаєтесь-

  • Потік Reader
  • Потік Writer

Потік Reader

Зчитувач потоків використовується для зчитування даних із файлу за допомогою потоків. Дані з файлу спочатку зчитуються в потік. Після цього програма зчитує дані з потоку.

Для нашого прикладу ми припустимо, що на диску D у нас є файл, який називається Example.txt. Файл буде простим текстовим файлом і матиме 2 рядки, як показано нижче

  • Guru99 - .Net
  • Guru99 -C #

Для нашого прикладу ми створимо просту програму Console і будемо працювати з потоками файлів

Давайте розглянемо приклад того, як ми можемо використовувати потоки для зчитування даних із файлу. Введіть код нижче у файлі 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. Далі ми визначаємо тимчасову змінну, яка буде використовуватися для зчитування всіх даних із файлу.
  3. Потім ми використовуємо метод читання потоку ReadLine для зчитування кожного рядка з буфера потоку. Коли ми виконуємо цю операцію, кожен рядок спочатку переноситься з файлу в буфер. Тоді рядок рядка буде перенесено з буфера в змінну 's'. Потім ми записуємо вміст рядка 's' на консоль.

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

Вихід: -

З вихідних даних видно, що програма 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 використовується, коли дані потрібно записувати у файл.