Input Output Műveletek Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 1 / 30
Tartalom jegyzék 1 I/O Osztályok File rendszer megvalósítás File rendszer módosítás, figyelés Stream kezelés IOException és társai 2 Alcsomagok 3 Példa Property fájl Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 2 / 30
System.IO.DriveInfo Háttértár Információk getdrives() IsReady() Name() RootDirectory() TotalSize() DriveType() CDRom Fixed Unknown Network Removeable Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 3 / 30
System.IO.DirectoryInfo Directory t reprezentál Példány szintű metódusok Create() Delete() GetDirectories() GetFiles() GetFiles(String) MoveTo() CreationTime Exists Name Parent Root Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 4 / 30
System.IO.Directory DirectoryInfo statikus változata statikus metódusok gyűjteménye CreateDirectory(String) Delete(String) GetDirectories(String) GetFiles(String) Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 5 / 30
System.IO.FileInfo File reprezentáció Példány szintű metódusok CopyTo(String) Create() Delete() Open(FileMode) CreationTime Directory Exists FullName Length Name Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 6 / 30
System.IO.File FileInfo statikus változata statikus metódusok gyűjteménye AppendText Create(String) Delete() Exists() Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 7 / 30
Path String alapú Elérési út alapú Platform "független" műveletek Statikus metódusok gyűjteménye GetDirectoryName() GetFileName() GetFullPath() GetPathRoot() Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 8 / 30
Tartalom jegyzék 1 I/O Osztályok File rendszer megvalósítás File rendszer módosítás, figyelés Stream kezelés IOException és társai 2 Alcsomagok 3 Példa Property fájl Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 9 / 30
Létrehozás, Áthelyezés, Törlés Create Directory. CreateDirectory() DirectoryInfo. Create() File.Create() Copy, Move Directory.Move() DirectoryInfo. MoveTo() File.Copy() Delete Directory.Delete() DirectoryInfo. Delete() File.Delete() Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 10 / 30
FileSystemWatcher Változások figyelése Esemény kezelés Properties Filter IncludeSubdirectories Path Events Changed Created Deleted Error Renamed Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 11 / 30
Tartalom jegyzék 1 I/O Osztályok File rendszer megvalósítás File rendszer módosítás, figyelés Stream kezelés IOException és társai 2 Alcsomagok 3 Példa Property fájl Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 12 / 30
System.IO.Stream abstract Byte folyam Állományok általános kezelése abstract BufferedStream FileStream MemoryStream PrintingQueueStream CryptoStream... Fő metódusok Close() Flush() Read() Seek() Write() Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 13 / 30
FileAccess, FileMode FileAccess Read Write ReadWrite FileMode CreateNew (IOException) Create (Overwrite) Open (FileNotFoundException) OpenOrCreate Truncate Append Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 14 / 30
System.IO.FileReader //Alapbol a <project>/bin/debug mappaban futtatja a PlainText.txt pedig a <project> mappaban van. FileInfo inputfile = new FileInfo("../../PlainText.txt"); FileStream fs = new FileStream( inputfile.fullname, FileMode.Open, FileAccess.Read); Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 15 / 30
System.IO.FileReader byte[] buffer = new byte[1024]; int end = 0; while ( (end = fs.read(buffer, 0, buffer.length)) > 0) { for (int i = 0; i < end; i ++) { Console.Write(buffer[i]); } } Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 16 / 30
System.IO.StreamReader var sr = new StreamReader(tempFile.FullName); string line; while ((line = StreamReader(string path) sr.readline())!= ReadLine() null) { Close() Console.WriteLine(line); } sr.close(); Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 17 / 30
System.IO.StreamWriter StreamWriter(string path, bool append) WriteLine(string line) Flush() Close() var sw = new StreamWriter( tempfile.fullname, true); sw.writeline(datetime.now); sw.close(); Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 18 / 30
Tartalom jegyzék 1 I/O Osztályok File rendszer megvalósítás File rendszer módosítás, figyelés Stream kezelés IOException és társai 2 Alcsomagok 3 Példa Property fájl Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 19 / 30
IOException Általános Ősosztály Minden ami stream file directory Utolsó catch blokk System.IO.IOException System.IO.DirectoryNotFoundException System.IO.DriveNotFoundException System.IO.EndOfStreamException System.IO.FileLoadException System.IO.FileNotFoundException System.IO.PathTooLongException System.IO.PipeException Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 20 / 30
{Drive,Directory,File}NotFoundException Gyakori Fájl vagy Mappa nem található Számos metódus dobhatja Fontosabb kapcsolódó osztályok Directory DirectoryInfo File FileInfo Path Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 21 / 30
UnauthorizedAccessException public class UnauthorizedAccessException : SystemException OS megtagadja a hozzáférést IO Error Biztonsági hiba Számos forrás FileInfo.Delete() FileInfo.CreateText() File.OpenRead() Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 22 / 30
SecurityException public class SecurityException : SystemException Biztonsági hiba Kiváltó metódusok Security Error Properties File.ReadLines() Action File.ReadAllText() Method File.WriteAllText() PermissionType Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 23 / 30
Tartalom jegyzék 1 I/O Osztályok File rendszer megvalósítás File rendszer módosítás, figyelés Stream kezelés IOException és társai 2 Alcsomagok 3 Példa Property fájl Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 24 / 30
System.IO.Compression Osztály gyűjtemény Stream ek ki /becsomagolása Zip formátum GZipStream ZipFile ZipArchive ZipArchiveEntry Enumerációk CompressionLevel CompressionMode ZipArchiveMode Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 25 / 30
System.IO.Log Assembly: System.IO.Log (in System.IO.Log.dll) Naplózási funkciók Rekord orientált LogStore LogExtent FileRecordSequence LogRecord Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 26 / 30
System.IO.Ports Soros portok kezelése Szinkron I/O elérés esemény vezérelt I/O elérés Stream wrapelés Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 27 / 30
Tartalom jegyzék 1 I/O Osztályok File rendszer megvalósítás File rendszer módosítás, figyelés Stream kezelés IOException és társai 2 Alcsomagok 3 Példa Property fájl Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 28 / 30
Property fájl.properties ASCII szöveges állomány Alkalmazások Alkalmazás konfiguráció Honosítás Nemzetköziesítés Java világra jellemző Többféle formátum key=value key = value key:value key value #comment Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 29 / 30
Property fájl Dictionary<string,string> properties = new Dictionary<string, string>(); foreach (var row in File.ReadAllLines("../../lotto.properties")) { //String feldolgozas //soronkent } Tóth Zsolt (Miskolci Egyetem) Input Output Műveletek 2013 30 / 30