Dnes si predstavíme základný vstup a výstup zo súborov, vďaka čomu budete schopný ukladať a čítať data.
Čítanie údajov zo súboru je vďaka .NETu pomerne jednoduché a podobne je na tom aj zapisovanie. Čítanie a zapisovanie prebieha cez triedy z namespace System.IO a tak ho pridajte pomocou using System.IO; . V tomto a ďalších dieloch už nebudem na tieto veci upozorňovať a budem väčšinou používať anglické výrazy. Taktiež sa môže stať že namiesto slova metóda použijem slovo funkcia, čo je označenie metód z mnohých iných jazykov. Okrem toho tu bude minimum príkladov a je na vás si veci, ktoré vám ukážem vyskúšať.
Čítanie cez StreamReader
StreamReader je najjednoduchší spôsob ako čítať zo súboru – Nový objekt tejto triedy vytvoríte s parametrom typu string, ktorý bude označovať cestu k súboru. Následne môžete čítať viacerými metódami:
1. Metóda ReadToEnd – pomocou nej môžete prečítať všetky údaje od aktuálnej pozície súbora po koniec. Pokiaľ ste práve otvorili súbor tak ste na začiatku súboru a prečítate celý súbor.
2. Metóda ReadLine – prečíta časť súboru od aktuálnej pozície, po najbližší koniec riadku.
3. Metóda ReadBlock – prečíta časť súboru do poľa typu char z aktuálnej pozície. Druhý parameter určuje od ktorej pozície v poli sa má zapisovať a tretí maximálnu dĺžku.
4. Metóda Read – prečíta jeden nasledujúci znak.
Najčastejšie budete používať ReadToEnd a ReadLine. Po dokončení je nutné súbor uzavrieť metódov Close.
Zapisovanie cez StreamWriter
StreamWriter je opak StreamReaderu a umožňuje práve zapisovanie. Tvorba objektu prebieha rovnako ako pri StreamReaderi. Metódy zápisu sú len 2 a to WriteLine, čo zapíše text na koniec súboru a pridá nový riadok. Metóda Write funguje podobne akurát nezapisuje nový riadok.
Čitanie a zapisovanie cez File
File je statická trieda, pomocou ktorej môžete získať rôzne informácie o súboroch. Čítanie prebieha metódami ReadAllLines, ReadAllText, ReadLines alebo ReadLines. Prvé metódy fungujú podobne ako pri StreamReaderi, posledná číta priamo do typu byte[]. Zapisovanie funguje opačným spôsobom a to metódami WriteAllLines, WriteAllText alebo WriteAllBytes. Ako parameter všetkých metód je meno súboru, v prípade metód aj údaje, ktoré chcete zapísať.
Použitie triedy Stream
Trieda stream je základná trieda pomocou ktorej prebieha všetko čítanie a zapisovanie – triedy a metódy, ktoré sme si ukázali sú odvodené od nej. Niekedy je výhodnejšie použiť práve čistú triedu Stream. Na vytvorenie objektu typu Stream stačí takýto kód :
<span class="lang:c# decode:true crayon-inline">Stream stream = File.Open("cesta k suboru", FileMode.Open, FileAccess.ReadWrite);</span>
Pomocou metódy File.Open sme otvorili stream súboru. Prvým argumentom je meno súboru, druhým čo so súborom chcete robiť (Otvoriť, vytvoriť nový atd.) a tretím ako chcete k súboru pristupovať – čítať, zapisovať alebo oboje.
Čítanie a zapisovanie prebieha metódami Read a Write. Prvým argumentom je Pole byte[] do/z ktorého sa budú údaje čítať/zapisovať. Druhý argument je miesto, kam sa budú dáta v poli zapisovať, alebo z ktorého miesta v poli sa budú čítať a posledný je dĺžka, ktorú prečítate.
To by bolo čítanie alebo zápis do súboru a nabudúce si ukážeme niektoré matematické pomôcky.