C # Stream apmācība: StreamReader, StreamWriter ar piemēru

Satura rādītājs:

Anonim

C # failu operācijās parasti plūsmas tiek izmantotas failu lasīšanai un rakstīšanai. Straume ir papildu slānis, kas izveidots starp lietojumprogrammu un failu. Straume tiek izmantota, lai nodrošinātu vienmērīgas lasīšanas un rakstīšanas operācijas failā.

Straumes parasti tiek izmantotas, lasot datus no lieliem failiem. Izmantojot straumes, dati no lieliem failiem tiek sadalīti mazos gabaliņos un nosūtīti straumē. Šos datu gabalus pēc tam var nolasīt no lietojumprogrammas.

Iemesls sadalīšanai mazos gabaliņos ir liela faila lasīšanas vienā kadrā veiktspējas ietekmes dēļ. Ja jūs vienā lasījumā nolasītu datus no teiciena 100 MB faila, jūsu lietojumprogramma varētu vienkārši pakārt un kļūt nestabila. Vislabākā pieeja ir izmantot straumes, lai sadalītu failu pārvaldāmos gabalos.

Tātad, kad failā tiek veikta rakstīšanas darbība, rakstāmie dati vispirms tiek ierakstīti straumē. Pēc straumes dati tiek ierakstīti failā. Tas pats attiecas uz lasīšanas darbību. Lasīšanas operācijā dati vispirms tiek pārsūtīti no faila uz straumi. Pēc tam dati tiek straumēti nolasīti no lietojumprogrammas. Apskatīsim piemēru, kā mēs varam lasīt un rakstīt, izmantojot straumes.

Šajā apmācībā jūs uzzināsiet

  • Straumēšanas lasītājs
  • Stream Writer

Straumēšanas lasītājs

Straumes lasītājs tiek izmantots, lai nolasītu datus no faila, izmantojot straumes. Dati no faila vispirms tiek nolasīti straumē. Pēc tam lietojumprogramma nolasa straumes datus.

Piemēram, mēs pieņemsim, ka D diskā mums ir fails ar nosaukumu Example.txt. Fails būs vienkāršs teksta fails, un tam būs 2 rindas, kā parādīts zemāk

  • Guru99 -. Nets
  • Guru99 -C #

Piemēram, mēs izveidosim vienkāršu konsoles lietojumprogrammu un strādāsim ar failu straumēm

Apskatīsim piemēru, kā mēs varam izmantot straumes datu nolasīšanai no faila. Programmā.cs failā ievadiet zemāk redzamo kodu.

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

Koda skaidrojums: -

  1. Pirmkārt, mēs deklarējam straumes lasītāja objektu. Straumes lasītāja objekts tiek izmantots C #, lai definētu plūsmu no faila uz lietojumprogrammu. Dati tiks pārvietoti no faila uz straumi ikreiz, kad dati tiks nolasīti no faila. File.OpenText tiek izmantots, lai atvērtu failu "Example.txt" tikai lasīšanas režīmā. Pēc tam faila apstrādātājs tiek nosūtīts straumes lasītāja objektam.
  2. Tālāk mēs definējam pagaidu mainīgo “s”, kas tiks izmantots, lai nolasītu visus datus no faila.
  3. Pēc tam mēs izmantojam plūsmas lasītāja metodi ReadLine, lai lasītu katru rindiņu no straumes bufera. Kad mēs veiksim šo darbību, katra rinda vispirms tiks pārsūtīta no faila uz buferi. Tad virknes līnija tiks pārsūtīta no bufera uz mainīgo 's'. Pēc tam mēs ierakstām virknes 's' saturu konsolē.

Kad iepriekšējais kods ir iestatīts un projekts tiek palaists, izmantojot Visual Studio, jūs iegūsiet zemāk redzamo izvadi.

Izeja: -

No izejas jūs varat redzēt, ka straumes lasītājs nolasa abas faila rindas. Visbeidzot, no straumes nolasītās virknes rindas tika nosūtītas uz konsoli.

Stream Writer

Straumes rakstītājs tiek izmantots, lai ierakstītu datus failā, izmantojot straumes. Dati no lietojumprogrammas vispirms tiek ierakstīti straumē. Pēc tam straume ieraksta datus failā. Apskatīsim piemēru, kā mēs varam izmantot straumes, lai ierakstītu datus no faila. Programmā.cs failā ievadiet zemāk redzamo kodu.

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

Koda skaidrojums: -

  1. Pirmkārt, mēs pasludinām straumes rakstītāja objektu. Straumes rakstītāja objekts tiek izmantots C #, lai definētu straumi. Pēc tam straumi tiek izmantoti, lai ierakstītu datus no lietojumprogrammas failā. Dati tiks virzīti no lietojumprogrammas uz straumi ikreiz, kad dati būs jāraksta. Komanda File.AppendText tiek izmantota, lai atvērtu failu "Example.txt" pievienošanas režīmā. Pēc tam faila apstrādātājs tiek nosūtīts straumes rakstītāja objektam.
  2. Mēs izmantojam straumes rakstīšanas metodi Writeline, lai straumē ierakstītu rindiņu "Guru99 - ASP.Net". Pēc straumes līnija tiks ierakstīta failā.
  3. Pēc tam mēs esam aizvēruši straumes rakstītāju pēc rakstīšanas failā. Parasti laba prakse ir slēgt failu apstrādātājus, kad fails vairs nav vajadzīgs rakstīšanas vajadzībām.
  4. Visbeidzot, mēs atkal lasām faila saturu un ierakstām to konsoles žurnālā. Tas ir paredzēts, lai pārbaudītu, vai rinda ir ierakstīta failā.

Kad iepriekšējais kods ir iestatīts un projekts tiek palaists, izmantojot Visual Studio, jūs iegūsiet zemāk redzamo izvadi.

Izeja: -

No izejas jūs varat redzēt, ka rinda "Guru99 - ASP.Net" tika veiksmīgi pievienota failam. Visas 3 teksta rindas var redzēt konsolē.

Kopsavilkums

  • Straumes tiek izmantotas kā starplīmenis starp lietojumprogrammu un failu.
  • StreamReader tiek izmantots ikreiz, kad dati ir jālasa no faila.
  • Streamwriter tiek izmantots ikreiz, kad dati jāieraksta failā.