Objektumorientált programozás Pál László Sapientia EMTE, Csíkszereda, 2014/2015
Objektumorientált programozás - Pál László 12. ELŐADÁS Állomány-kezelés 2
Objektumorientált programozás - Pál László Mi a fájl? Fájl: egy közvetlen elérésű háttértárolón tárolt (általában nagy mennyiségű) adatok összessége. Egy fájlnak van neve (alkönyvtárnév + fájlnév), mely egyedi kell legyen Az operációs rendszer általában kiegészítő információkat is tárol a fájlokról. Pl. készítőjének azonosítója, készítés dátuma, utolsó módosítás dátuma, attribútumok 3
Objektumorientált programozás - Pál László Mi a fájl? Fajtái: Szöveges fájlok Bináris fájlok Véletlen elérésű fájlok A fájlkezelés lépései: Fájl megnyitása Adatok írása, olvasása Fájl lezárása 4
Objektumorientált programozás - Pál László Szöveges fájlok Karaktereket tartalmazó különböző hosszúságú sorokból épülnek fel Minden sor végén egy nem látható EOLN (CR/LF - kocsi vissza/soremelés) jel van, az állomány végén pedig egy szintén láthatatlan EOF jel Tetszőleges szövegszerkesztővel létrehozhatjuk és módosíthatjuk Speciális szöveges állománynak tekinthető a nyomtató is, amelybe csak írni lehet. 5
Objektumorientált programozás - Pál László Szöveges fájlok Elérésük és használatuk szempontjából szekvenciálisak Ez azt jelenti, hogy az egyes sorokat mindig a legelső sortól kezdve, egyesével olvashatjuk illetve írhatjuk Vagy csak olvashatjuk, vagy csak írhatjuk 6
Objektumorientált programozás - Pál László Szöveges fájlok Példa szöveges fájlra: 7
Objektumorientált programozás - Pál László Bináris fájlok A bináris fájl legfontosabb jellemzője, hogy bináris formátumban tárolja az adatokat. A számítógép memóriájában is bináris formában vannak az adatok tárolva A bináris fájlokba az adatok kiírása a memóriából nagyon gyors, mivel mindkettőben azonos formátumban vannak az adatok tárolva. 8
Objektumorientált programozás - Pál László Bináris fájlok Bináris fájl kiterjesztések:.doc,.jpg,.mp3,.pdf,.exe, stb A bináris fájlok nem olvashatóak egyszerű szövegszerkesztővel: 9
Objektumorientált programozás - Pál László Stream fájlok VB.NET-ben a fájlok közös műveleteit stream-ekben valósították meg. A stream (adatfolyam) a memória és egy külső egység közötti adatáramlást szimbolizálja A FileStream - mint a neve is mutatja - a memória és valamely fájl közötti adatáramlás leírására szolgáló osztály. 10
A FileStream osztály Objektumorientált programozás - Pál László Fájlok írására és olvasására használatos Névtér: System.IO Konstruktorok: FileStream(String, FileMode) FileStream(String, FileMode, FileAccess) ahol String: fájl elérési utja, FileMode: megnyitási mód (Open, Create, Append) 11
A FileStream osztály Objektumorientált programozás - Pál László FileAcces: milyen céllal nyitjuk meg a fájlt (Read, Write, Read and Write) Példa: 12
A StreamReader osztály Objektumorientált programozás - Pál László Többnyire szöveges fájlok beolvasására használjuk Konstruktorok: StreamReader(Stream): egy létező adatfolyamból olvasunk StreamReader(String): egy létező fájlból olvasunk direkt módon 13
A StreamReader osztály Objektumorientált programozás - Pál László Metódusok: Read: egy karaktert olvas ki, majd a fájlpozicíó-jelző egy karakterrel tovább megy ReadLine: egy teljes sort olvas ki ReadToEnd: az aktuális pozicíotól kezdve a fájl végéig kiolvas minden karaktert Close: bezárja az adatfolyamot és felszabadítja az erőforrásokat 14
A StreamReader osztály Objektumorientált programozás - Pál László Példa: 15
A StreamWrite osztály Objektumorientált programozás - Pál László Szöveges fájlok kiírására használjuk Konstruktorok: StreamWriter(Stream): egy létező adatfolyamba ír be StreamWriter(String): egy létező fájlba írunk ki direkt módon StreamWriter(String, Boolean): egy létező fájl végére írunk ki direkt módon 16
A StreamWriter osztály Objektumorientált programozás - Pál László Metódusok: Write: egy karaktert, sztringet, egész számot, valós számot ír ki az adatfolyamba WriteLine: egy karaktert, sztringet, egész számot, valós számot ír ki az adatfolyamba valamint egy sorvége jelt Close: bezárja az adatfolyamot és felszabadítja az erőforrásokat 17
A StreamWriter osztály Objektumorientált programozás - Pál László Példa: 18
A StreamWriter osztály Objektumorientált programozás - Pál László Példa: fájl végére való hozzáadás 19
A BinaryReader osztály Objektumorientált programozás - Pál László Bináris fájlok beolvasására használjuk Konstruktor: BinaryReader(Stream): egy létező adatfolyamból olvasunk Példa: 20
A BinaryWriter osztály Objektumorientált programozás - Pál László Bináris fájlok kiírására használjuk Konstruktor: BinaryWriter(Stream): egy adatfolyamba írunk ki Példa: 21
Objektumorientált programozás - Pál László Műveletek bináris fájlokkal Példa: fájlba írás 22
Objektumorientált programozás - Pál László Műveletek bináris fájlokkal Példa: fájlból olvasás 23