220 likes | 318 Views
Vizuális programozás. Fájl- és állományrendszer kezelés Névtér: System.IO. TextWriter. TextReader. StreamWriter Encoding,. StringWriter NewLine,. StreamReader Encoding,. StringReader NewLine,. BinaryReader. BinaryWriter. Stream Read, Write: byte[]. MemoryStream. FileStream.
E N D
Vizuális programozás Fájl- és állományrendszer kezelés Névtér: System.IO J.Zs.Cs.: Vizuális programozás (c) 2010
TextWriter TextReader StreamWriter Encoding, ... StringWriter NewLine, ... StreamReader Encoding, ... StringReader NewLine, ... BinaryReader BinaryWriter Stream Read, Write: byte[] MemoryStream FileStream BufferedStream NetworkStream IsolatedFileStream J.Zs.Cs.: Vizuális programozás (c) 2010
Forrás: http://etutorials.org/Programming/C+in+a+nutshell+tutorial/Part+IV+API+Quick+Reference/Chapter+31.+System.IO/ J.Zs.Cs.: Vizuális programozás (c) 2010
Fájlkezelés - Fontosabb osztályok1 • Stream: absztrakt ős, byte írás/olvasás • FileStream: közvetlen állománykezelés, szinkron és aszinkron műveletek • MemoryStream: nem pufferelt pufferként használható • BufferedStream: kiegészítő egy másik Stream-hez, pufferelést ad hozzá • NetworkStream: adatfolyam hálózati kapcsolaton keresztül. Névtér: System.Net.Sockets • CryptoStream: kriptográfiai transzformációkNévtér: System.Security.Cryptography J.Zs.Cs.: Vizuális programozás (c) 2010
Fontosabb osztályok2 • TextReader: absztrakt ős, Unicode karakter olvasás • StreamReader: karaktert olvas adatfolyamból (Stream-ből), byte-ról konvertál • StringReader: karaktert olvas stringből • TextWriter: absztrakt ős, Unicode karakter írás • StreamWriter: karaktert ír adatfolyamba, byte-ra konvertál • StringWriter: karaktert ír string-be J.Zs.Cs.: Vizuális programozás (c) 2010
Fontosabb osztályok3 • BinaryReader: bináris adatot olvas adatfolyamból • BinaryWriter: bináris adatot ír adatfolyamba J.Zs.Cs.: Vizuális programozás (c) 2010
Útvonal megadása • "C:\\...\\..." • @"C:\...\..." • "C:/…/…" J.Zs.Cs.: Vizuális programozás (c) 2010
BinaryReader/Writer StreamReader/Writer FileStream FileStream Állomány Állomány Mit fogunk áttekinteni? • Alacsony szintű IO • IO bájtonként – FileStream • Magas szintű IO • IO adattípusonként binárisan –BinaryReader, BinaryWriter • IO szövegesen –StreamReader, StreamWriter J.Zs.Cs.: Vizuális programozás (c) 2010
FileStream1 • Adatok írása és olvasása bájtonként, alacsony szintű IO. • Megnyitás/LétrehozásFileStream fs=new FileStream("név", FileMode.Open, FileAccess.Read);FileMode.Create, Append (hozzáfűz), CreateNew (létrehoz, kivéve, ha már van ilyen), OpenOrCreate, Truncate (megnyit és tartalmat töröl)FileAccess.Write, ReadWrite J.Zs.Cs.: Vizuális programozás (c) 2010
FileStream2 • Írásfs.Write(byte []miből, int honnan kezdve, int hány bájtot);fs.WriteByte(byte mit); • Olvasásint a=fs.Read(byte []hova, int honnan kezdve tegye a tömbbe, int hány bájtot);a!=0 a beolvasott bájtok számaa==0 sikertelenint b=fs.ReadByte();b: -1 hiba esetén, pozitív egész int-re konvertálva J.Zs.Cs.: Vizuális programozás (c) 2010
FileStream3 • Pozícionálásfs.Seek(int eltolás mértéke, SeekOrigin.Begin);SeekOrigin.Current, Endfs.Position=5; • Méretváltoztatásfs.SetLength(int újméret); • Lezárásfs.Close(); J.Zs.Cs.: Vizuális programozás (c) 2010
StreamReader és StreamWriter1 • Magas szintű szöveges állománykezelés. Egy FileStream-re épül. • Megnyitás, létrehozásFileStream fs=new FileStream(…);StreamReader sr=new StreamReader(fs);StreamWriter sw=new StreamWriter(fs);StreamReader sru=new StreamReader("név"); J.Zs.Cs.: Vizuális programozás (c) 2010
StreamReader és StreamWriter2 • Olvasásstring t=sr.ReadLine(); //beolvas egy sort vagy null-t ad, ha elértük a fájl végétint a=sr.Read(); //egy karaktert olvasstring végéig=sr.ReadToEnd(); • Írássw.Write(string mit);sw.WriteLine(string mit); "\r\n", • Lezárássw.Close(); J.Zs.Cs.: Vizuális programozás (c) 2010
BinaryReader és BinaryWriter1 • Magas szintű bináris állománykezelés. Egy FileStream-re épül. • Megnyitás, létrehozásFileStream fs=new FileStream(…);BinaryReader br=new BinaryReader(fs);BinaryWriter bw=new BinaryWriter(fs);BinaryReader bru=new BinaryReader("név"); J.Zs.Cs.: Vizuális programozás (c) 2010
BinaryReader és BinaryWriter2 • Olvasásint a=br.Read(); //-1 vagy a következő karakterReadByte,ReadDouble,ReadInt16,…br.Read(byte []hova, int honnan kezdve tegye a tömbbe, int hány bájtot); • Írásbw.Write(változó); //alaptípusokbw.Write(byte []miből, int honnan kezdve, int hány bájtot); • Lezárásbw.Close(); J.Zs.Cs.: Vizuális programozás (c) 2010
Állományrendszer kezelése Névtér: System.IO J.Zs.Cs.: Vizuális programozás (c) 2010
Állományrendszer kezelése - Fontosabb osztályok • DirectoryInfo: könyvtárak létrehozása, törlése, manipulálása. Csak példány szintű metódusok. • FileInfo: állományok létrehozása, törlése, manipulálása. Csak példány szintű metódusok. • Directory: könyvtárak létrehozása, törlése, manipulálása. Csak statikus metódusok. • File: állományok létrehozása, törlése, manipulálása. Csak statikus metódusok. • Path: műveletek útvonal információt tartalmazó string-en J.Zs.Cs.: Vizuális programozás (c) 2010
DirectoryInfo • DirectoryInfodi=new DirectoryInfo(könyvtárnév);pl. (".") vagy (@"C:\windows") • string név=di.FullName; • FileInfo []fi=di.GetFiles(); • DirectoryInfo []dis=di.GetDirectories(); • DirectoryInfoszülő=di.Parent; • di=new DirectoryInfo("újkönyvtár");if(!di.Exists)di.Create();di.Attributes|=FileAttributes.Hidden… ;…di.Delete(true); J.Zs.Cs.: Vizuális programozás (c) 2010
Directory • string kt=Directory.GetCurrentDirectory()aktuális könyvtár • string []megh=Directory.GetLogicalDrives()A:\,C:\,… • Directory.Create(…) • Directory.Delete(…) • Directory.MoveTo(…) • Directory.CopyTo(…) J.Zs.Cs.: Vizuális programozás (c) 2010
FileInfo • FileAttributes Attributes • bool Exists • string Extension • string FullName • DateTime LastWriteTime • int Length • CopyTo() • MoveTo() • Create() • Delete() J.Zs.Cs.: Vizuális programozás (c) 2010
Könyvtárfa mintaprogram J.Zs.Cs.: Vizuális programozás (c) 2010
Biztonsági másolat készítő Példaprogram J.Zs.Cs.: Vizuális programozás (c) 2010