c filestream streamwriter
V tomto kurzu se dozvíte o System.IO, což je jmenný prostor C #. Tento jmenný prostor poskytuje třídy C #, jako jsou FileStream, StreamWriter, StreamReader pro zpracování vstupů a výstupů souborů:
jak přehrávat mkv soubor ve Windows
Soubor je v podstatě systémový objekt uložený v paměti v konkrétním daném adresáři se správným názvem a příponou. V C # voláme soubor jako stream, pokud jej použijeme pro zápis nebo čtení dat.
V tomto kurzu se podíváme do vstupního proudu, který se používá k načtení dat z daného souboru, a do výstupního proudu, který se používá k vložení dat do souboru.
=> Podívejte se na našeho Ultimate C # Training Guide zde
Co se naučíte:
Obor názvů System.IO
System.IO je obor názvů přítomný v C #, který obsahuje třídy, které lze použít k provádění různých operací v daném streamu, jako je vytváření, úpravy a načítání dat z daného souboru.
Podívejme se na některé z těchto tříd.
C # FileStream
Streamování souborů nabízí cestu pro provádění operací se soubory. Používá se hlavně ke čtení a zápisu dat do souborů.
Příklad zápisu do souboru:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string() args) { FileStream f = new FileStream('d:\b.txt', FileMode.OpenOrCreate); Console.WriteLine('File opened'); f.WriteByte(70); Console.WriteLine('Data written into file'); f.Close(); Console.WriteLine('File Stream closed'); } } }
Zde jsme napsali jednoduchý program pro zápis jednobajtových dat do souboru pomocí souborového proudu. Nejprve jsme vytvořili objekt FileStream a předali jsme název souboru. Poté jsme nastavili režim souboru tak, aby se otevřel nebo vytvořil. V otevřeném souboru jsme pomocí WriteByte napsali jeden bajt a nakonec jsme vše zavřeli.
Výstupem je soubor txt s jediným bajtem.
Příklad čtení souboru
V našem předchozím příkladu jsme se naučili, jak nyní zapisovat do souboru, zkusme si soubor přečíst.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string() args) { FileStream f = new FileStream('d:\b.txt', FileMode.OpenOrCreate); Console.WriteLine('File opened'); char a = (char)f.ReadByte(); Console.WriteLine('Data read from file is: '+a); f.Close(); Console.WriteLine('File Stream closed'); Console.ReadLine(); } } }
Zde jsme použili ReadByte ke čtení bajtu ze souboru. Tento příkaz se používá k načtení jednoho bajtu ze souboru. Pokud si chcete přečíst více dat, budete je muset předat smyčkou. Poté jsme jej uložili do proměnné char, ale protože návratový typ se ne vždy shoduje s ReadByte, přidali jsme také cast pro char.
Pokud spustíme tento program, bude pozorován následující výstup.
Výstup
Soubor otevřen
Data načtená ze souboru jsou: F
Stream souborů uzavřen
C #StreamWriter
Třída StreamWriter v C # se používá k zápisu znaků do proudu. Používá třídu TextWriter jako základní třídu a poskytuje metody přetížení pro zápis dat do souboru.
StreamWriter se používá hlavně pro zápis více znaků dat do souboru.
Příklad:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string() args) { FileStream f = new FileStream('d:\b.txt', FileMode.OpenOrCreate); Console.WriteLine('File opened'); //declared stream writer StreamWriter s = new StreamWriter(f); Console.WriteLine('Writing data to file'); s.WriteLine('Writing data into file using stream writer'); //closing stream writer s.Close(); f.Close(); Console.WriteLine('File Stream closed'); Console.ReadLine(); } } }
Po inicializaci objektu FileStream jsme také inicializovali objekt StreamWriter pomocí objektu FileStream. Potom jsme k zápisu jednoho řádku dat do souboru použili metodu WriteLine. Pak jsme zavřeli StreamWriter a poté FileStream.
Výstupem následujícího kódu bude soubor s zapsanými uživatelskými daty.
jak deklarovat propojený seznam v Javě
Výstup
C #StreamReader
StreamReader se používá ke čtení řetězců nebo velkých vět ze souboru. StreamReader také používá třídu TextReader jako svou základní třídu a poté nabízí metody jako Reading a ReadLine ke čtení dat ze streamu.
Příklad čtení dat:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string() args) { FileStream f = new FileStream('d:\b.txt', FileMode.OpenOrCreate); Console.WriteLine('File opened'); //declared stream reader StreamReader sr = new StreamReader(f); Console.WriteLine('Reading data from the file'); string line = sr.ReadLine(); Console.WriteLine('The data from the file is : ' + line); //closing stream writer sr.Close(); f.Close(); Console.WriteLine('File Stream closed'); Console.ReadLine(); } } }
Tady jsme vytvořili objekt z StreamReaderu pomocí FileStream. Pak jsme použili jednoduchou metodu readline ke čtení dat ze souboru. Zavřeli jsme StreamReader a poté FileStream.
Výše uvedený program vytvořil následující výstup:
Výstup:
Soubor otevřen
Čtení dat ze souboru
Data ze souboru jsou: Zápis dat do souboru pomocí zapisovače proudu
Stream souborů uzavřen
hlasový měnič, který pracuje s svárem
C #TextWriter
V jazyce C # je třída TextWriter zapsána jako abstraktní třída. Používá se k vytvoření sekvenční řady znaků uvnitř souboru. Je to docela podobné zapisovači proudu, který uživateli také umožňuje psát do souboru sekvenční znaky nebo text, ale pro operaci nevyžaduje vytvoření FileStream.
Příklad, jak vědět, jak TextWriter funguje:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string() args) { using (TextWriter writer = File.CreateText('d:\textFile.txt')) { writer.WriteLine('The first line with text writer'); } Console.ReadLine(); } } }
Výše uvedený kód funguje podobně jako StreamWriter. Metoda WriteLine zapisuje data do souboru. Do souboru můžete zapsat více dat pomocí více metod WriteLine uvnitř bloku using using.
Výstup vytvoří textový soubor s uživatelem definovaným textem.
Výstup:
C #Čtečka textu
Čtečka textu je další třída, která se nachází v System.IO. Používá se ke čtení textu nebo libovolných sekvenčních znaků z daného souboru.
Příklad:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string() args) { using (TextReader txtR = File.OpenText('d:\textFile.txt')) { String data = txtR.ReadToEnd(); Console.WriteLine(data); } Console.ReadLine(); } } }
Ve výše uvedeném programu jsme použili TextReader k otevření souboru, který je uložen na určitém místě. Poté jsme deklarovali řetězcovou proměnnou pro uložení dat souboru. Metoda ReadToEnd zajišťuje, že byla načtena všechna data uvnitř souboru. Poté jsme data vytiskli na konzolu.
Výstupem výše uvedeného programu bude:
První řádek se zapisovačem textu
Závěr
Obor názvů System.IO uvnitř C # nabízí různé třídy a metody, které programátorům umožňují provádět operace čtení a zápisu na různých souborech. System.IO obsahuje několik tříd jako FileStream, StreamReader, StreamWriter, TextReader, TextWriter atd.
Všechny tyto třídy poskytují konkrétní implementaci operací čtení a zápisu do souboru v závislosti na požadavku.
Ukázka kódu
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string() args) { FileStream f = new FileStream('d:\b.txt', FileMode.OpenOrCreate); Console.WriteLine('File opened'); f.WriteByte(70); Console.WriteLine('Data written into file'); char a = (char)f.ReadByte(); Console.WriteLine('Data read from file is: ' + a); //declared stream writer StreamWriter s = new StreamWriter(f); Console.WriteLine('Writing data to file'); s.WriteLine('Writing data into file using stream writer'); //declared stream reader StreamReader sr = new StreamReader(f); Console.WriteLine('Reading data from the file'); string line = sr.ReadLine(); Console.WriteLine('The data from the file is : ' + line); //closing stream sr.Close(); f.Close(); Console.WriteLine('File Stream closed'); using (TextWriter writer = File.CreateText('d:\textFile.txt')) { writer.WriteLine('The first line with text writer'); } using (TextReader txtR = File.OpenText('d:\textFile.txt')) { String data = txtR.ReadToEnd(); Console.WriteLine(data); } Console.ReadLine(); } } }
=> Celý seriál C # školení najdete zde
Doporučené čtení
- Manipulace se soubory v systému Unix: Přehled systému souborů Unix
- Unix speciální znaky nebo metaznaky pro manipulaci se soubory
- Unixová oprávnění pro přístup k souborům: Unix Chmod, Chown a Chgrp
- Objekty souboru VBScript: CopyFile, DeleteFile, OpenTextFile, čtení a zápis textového souboru
- Operace se vstupem a výstupem souboru v C ++
- Implementace Java: Vytvoření a spuštění souboru Java JAR
- Jak porovnat dva soubory v Unixu: Příkazy pro porovnání souborů
- Pokročilé skriptování prostředí Unix: pole, operátory testování souborů a řetězců, speciální proměnné