Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
ZveřejnilJosef Pokorný
1
PRÁCE S PROUDY V.NET FRAMEWORK APLIKACÍCH Architektura technologie.NET Jan Martinovič, FEI - Katedra Informatiky
2
File Statické metody AppendAllText – připojení specifikovaného řetězce k souboru. Pokud soubor neexistuje, tak je vytvořen AppendText – Otevře souboru (nebo jeho vytvoření pokud neexistuje) a jeho vrácení jako StreamWriter Copy – kopírování existujícího souboru do nového souboru Create – vytvoření souboru na zadané cestě a jako vracení jako FileStream CreateText – vytvoření nebo otevření souboru pro textový zápis a jeho návrat jako StreamWriter Move – přesun souboru na nové místo Open – Otevření souboru a jeho vrácení jako FileStream OpenRead – Otevření souboru pro čtení a jeho vrácení jako FileStream 2
3
File Statické metody OpenText – otevření existujícího textového souboru pro čtení a jeho vrácení jako StreamReader OpenWrite – otevření existujícího souboru pro zápis a jeho vrácení jako FileStream ReadAllBytes – otevře soubor pro binární čtení, jeho obsah zapíše do pole bytů a soubor zavře ReadAllLines – otevře textový soubor, jeho obsah do pole řetězců a soubor zavře ReadAllText – otevření textového souboru, jeho obsah se načte do řetězce a soubor se zavře WriteAllBytes – vytvoří soubor pro binární zápis, zapíše do něj pole bytů a soubor zavře (pokud soubor již existuje bude přepsán) WriteAllText – vytvoření textového souboru, zapsání do něj pole řetězců a uzavření souboru (pokud soubor již existuje bude přepsán) WriteAllLines – vytvoření textového souboru, zapsání do něj řetězce a uzavření souboru (pokud soubor již existuje bude přepsán) 3
4
Directory Statické metody CreateDirectory – vytváření adresářů Delete – smazání adresáře Exists – test zda adresář existuje na disku GetCreationTime – získání času vytvoření adresáře GetCurrentDirectory – získání aktuálního pracovního adresáře GetDirectories – získání jmen podadresářů ve specifikovaném adresáři GetDirectoryRoot – získání informací o svazku, kořenové informace, nebo obojí ze specifikované cesty GetFiles – získání jmen souborů ve specifikovaném adresáři 4
5
Directory Statické metody GetLastAccessTime – vrátí čas kdy bylo ke specifikovanému adresáři naposledy přistupováno GetLastWriteTime – vrátí čas kdy bylo do specifikovanému adresáři naposledy zapisováno GetLogicalDrives – získání seznam diskových jednotek na aktuálním systému dle vzoru: „ :\“ GetParent – získání rodičovského adresáře k adresáři specifikovanému Move – přesun souboru či adresáře na specifikované místo SetCreationTime – nastavení času vytvoření pro specifikovaný adresář SetCurrentDirectory – nastavení adresáře, který bude využívat aplikace jako pracovní SetLastAccessTime – nastavení času posledního přístupu pro specifikovaný adresář SetLastWriteTime – nastavení času posledního zápisu pro specifikovaný adresář 5
6
Proudy jsou základní cestou jak pracovat s daty náhodným i sekvenčním přístupem Proudy jsou používány v různých částech.NET Frameworku Základem je abstraktní třída Stream 6
7
Stream Vlastnosti CanRead – indikace, zda proud podporuje čtení CanSeek – indikace, zda proud podporuje prohledávání CanTimeout – indikace, zda proud podporuje časový limit CanWrite – indikace, zda proud podporuje zápis Length – vrátí délku proudu v bytech Position – získání či nastavení aktuální pozice v proudu ReadTimeout – získání či nastavení časového limitu, po který se bude proud pokoušet číst WriteTimeout – získání či nastavení časového limitu, po který se bude proud pokoušet zapisovat 7
8
Stream Metody Close – uzavření proudu a uvolnění prostředků přiřazených tomuto proudu Flush – uvolnění vyrovnávací paměti a zápis takto uvolněných dat Read – přečtení sekvence bytů zadané délky od aktuální pozice a přesun aktuální pozice o přečtenou délku ReadByte – přečtení bytu z proudu a přesun o jednu pozici nebo pokud vrácení -1 pokud je na konci proudu Seek – nastavení pozice uvnitř proudu SetLength – nastavení délky aktuálního proudu Write - zápis sekvence bytů zadané délky od aktuální pozice a přesun aktuální pozice o přečtenou délku WriteByte - zápis bytu do proudu a přesun o jednu pozici 8
9
Stream 9
10
FileAccess Enumerátor Read – přístup ke čtení Write – přístup pro zápis ReadWrite – přístup ke čtení i pro zápis 10
11
FileMode Enumerátor Append – otevření souboru pokud existuje a přesun na konec tohoto souboru, nebo vytvoření nového souboru Create – bude vytvořen nový soubor – pokud soubor již existuje bude přepsán CreateNew – bude vytvořen nový soubor – pokud soubor existuje dojde k výjimce Open – otevření souboru – pokud soubor neexistuje dojde k výjimce OpenOrCreate – otevření souboru – pokud soubor neexistuje bude vytvořen nový Truncate – otevření existujícího souboru a oříznutí jeho velikosti na 0 bytů 11
12
FileStream Odvozený od třídy Stream Vlastnosti Handle – získání ukazatele operačního systému na soubor, který FileStream zapouzdřuje Name – získání jména, které bylo zadáno v konstruktoru FileStream Metody Lock – zakázání ostatním procesům měnit FileStream – povolení pouze čtení Unlock – povolení ostatním procesům měnit FileStream – povolení pouze čtení 12
13
StreamWriter Odvozený od třídy TextWriter Vlastnosti AutoFlush – získání či nastavení informace o tom zda proud bude zapisovat jeho vyrovnávací paměť po každém volání StreamWriter.Write BaseStream – získání připojeného proudu Encoding – získání kódování, ve kterém se bude zapisovat NewLine – získání nebo nastavení řetězce, kterým budou ukončovány jednotlivé řádky Metody Close – uzavření proudu a proudu s ním spojeného Write – zápis do proudu WriteLine – zápis dat dle specifikace parametry a ukončení řádku ukončovacím řetězcem 13
14
Jak zapisovat do textových souborů string fileName = "MujSoubor.txt"; if (File.Exists(fileName)) { Console.WriteLine("Soubor {0} již existuje.", fileName); return; } using (StreamWriter sw = File.CreateText(fileName)) { sw.WriteLine("Toto je testovací soubor."); sw.WriteLine("Dnes je: {0}", DateTime.Now); } string fileName = "MujSoubor.txt"; if (File.Exists(fileName)) { Console.WriteLine("Soubor {0} již existuje.", fileName); return; } using (StreamWriter sw = File.CreateText(fileName)) { sw.WriteLine("Toto je testovací soubor."); sw.WriteLine("Dnes je: {0}", DateTime.Now); } 14
15
Jak zapisovat do binárních souborů string fileName = "Test.data"; if (File.Exists(fileName)) { File.Delete(fileName); } using (FileStream fs = new FileStream(fileName, FileMode.CreateNew)) { using (BinaryWriter w = new BinaryWriter(fs)) { for (int i = 0; i < 11; i++) { w.Write(i); } string fileName = "Test.data"; if (File.Exists(fileName)) { File.Delete(fileName); } using (FileStream fs = new FileStream(fileName, FileMode.CreateNew)) { using (BinaryWriter w = new BinaryWriter(fs)) { for (int i = 0; i < 11; i++) { w.Write(i); } 15
16
StreamReader Odvozený od TextReader Vlastnosti BaseStream – získání připojeného proudu CurrentEncoding – získání kódování, která aktuální StreamReader používá EndOfStream – indikace zda je aktuální pozice v proudu na konci proudu Metody Close – uzavření proudu a uvolnění prostředků přiřazených tomuto proudu Peek – vrátí další dostupný znak, ale neposune pozici v proudu Read – přečte následující znak nebo další množinu znaků ze vstupního proudu ReadBlock – přečte maximum možných znaků zadaných parametrem count a zapíše je do buffer (char[]) – zápis bude probíhat od pozice index ReadLine – přečte řádek znaků z aktuálního proudu a vrátí ho jako řetězec ReadToEnd – přečte proud od aktuální pozice do konce a vrátí jako řetězec 16
17
Jak číst z textových souborů string fileName = "MujSoubor.txt"; if (!File.Exists(fileName)) { Console.WriteLine("Soubor {0} neexistuje.", fileName); return; } using (StreamReader sr = File.OpenText(fileName)) { String input; while ((input = sr.ReadLine()) != null) { Console.WriteLine(input); } Console.WriteLine("Byl dosažen konec souboru."); } string fileName = "MujSoubor.txt"; if (!File.Exists(fileName)) { Console.WriteLine("Soubor {0} neexistuje.", fileName); return; } using (StreamReader sr = File.OpenText(fileName)) { String input; while ((input = sr.ReadLine()) != null) { Console.WriteLine(input); } Console.WriteLine("Byl dosažen konec souboru."); } 17
18
Jak číst z binárních souborů string fileName = "Test.data"; if (!File.Exists(fileName)) { Console.WriteLine("Soubor {0} neexistuje.", fileName); } using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read)) { using (BinaryReader r = new BinaryReader(fs)) { for (int i = 0; i < 11; i++) { Console.WriteLine(r.ReadInt32()); } string fileName = "Test.data"; if (!File.Exists(fileName)) { Console.WriteLine("Soubor {0} neexistuje.", fileName); } using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read)) { using (BinaryReader r = new BinaryReader(fs)) { for (int i = 0; i < 11; i++) { Console.WriteLine(r.ReadInt32()); } 18
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.