Fájlok megnyitása
A fájlokhoz való hozzáférés a FileStream osztály segítségével történik.
Dim f As New FileStream(fajlnev, mód, hozzáférés, megosztás)
Mód:
ˇ FileMode.Create: Új fájl létrehozása. Ha a fájl már létezik, akkor felülírja.
ˇ FileMode.CreateNew: Új fájlt hoz létre, ha a fájl már létezik, akkor hibaüzenetet kapunk.
ˇ FileMode.Append: Hozzáfűzésre nyitja meg a fájl, vagy létrehozza, ha még nem létezik. A fájl végére pozícionál. Csak FileAccess.Write hozzáféréssel használható
ˇ FileMode.Open: Megnyitja a létező fájlt.
ˇ FileMode.OpenOrCreate: Ha a fájl már létezik, akkor megnyitja, ha nem létezik, akkor létrejön.
ˇ FileMode.Truncate: Létező fájl megnyitása és a benne lévő adatok törlése.
Hozzáférés:
ˇ FileAccess.Read: Csak olvasásra nyitjuk meg a fájlt
ˇ FileAccess.Write: Csak írásra nyitjuk meg a fájlt
ˇ FileAccess.ReadWrite: Írásra és olvasásra is megnyitjuk a fájlt.
Megosztás:
ˇ FileShare.None: A fájl nem osztható meg
ˇ FileShare.Read: Csak olvasásra osztjuk meg a fájlt
ˇ FileShare.Write: Csak írásra osztjuk meg a fájlt
ˇ FileShare.ReadWrite: Írásra és olvasásra is megosztjuk a fájlt.
Fájl bezárása
Szöveges fájlok kezelése
Szöveges fájlok kezelésére a StreamWriter és StreamReader osztályokat használjuk
Szövegsorok fájlba írása:
A legegyszerűbben (az érettségihez ez pont elég)
Dim olvasó As New IO.StreamReader("homers.txt") StreamReader objektum létrehozása az homers.txt fájl kezeléséhez
Dim Sor(100)
As String
Do Until olvasó.EndOfStream ' adatok beolvasás soronként
Adatok_száma = Adatok_száma + 1 ' Itt számolom meg, hogy hány adat van
Sor(Adatok_száma) = olvasó.ReadLine ' beolvasás
soronkén
Loop
olvasó.Close() 'Bezárás. Ilyenkor ürül a puffer
is ..
Dim J As Integer
Dim Fíró As New IO.StreamWriter("kirendezett.txt")StreamWriter objektum létrehozása
For J = 1 To Adatok_száma
Fíró.WriteLine(Tar(J).Város & ", " & Format(Tar(J).T_közép, "0.0 °C"))
Next J
Fíró.Close()
Ez már komplikáltabb
Dim f As New FileStream("szoveg.txt", FileMode.OpenOrCreate, FileAccess.Write) 'FileStream objektum létrehozása
Dim sw As New StreamWriter(f) 'StreamWriter objektum létrehozása az f fájl kezeléséhez
f.Seek(0, SeekOrigin.End) 'Fájl végére pozícionálunk
sw.WriteLine(txtKiir.Text) 'Kiírunk egy sort a fájlba (illetve a pufferba). Write metódus használatakor nem kerül sortörés a szöveg végére.
sw.Flush() 'Pufferürítés. Ilyenkor kerül kiírásra a fájlba a pufferban lévo szöveg
sw.Close() 'Bezárás. Ilyenkor is ürül a puffer...
f.Close() 'filestream bezárása
Sorok beolvasása:
Dim fi As New FileStream("szoveg.txt", FileMode.Open) ''FileStream objektum létrehozása, megnyitva a már létezo fájlt
Dim sr As New StreamReader(fi) 'StreamReader objektum létrehozása az f fájl kezeléséhez
Do While sr.Peek >= 0 'ciklus indul, amíg nincs vége a fájlnak (Peek -1 értéke esetén vége van...)
txtBeolvas.Text &= sr.ReadLine() & ControlChars.CrLf 'a beolvasott sort hozzáfuzzük egy stringhez és sortörést teszünk a végére. (Read metódussal karakterenként olvashatunk be)
Loop
sr.Close()
fi.Close()
Bináris
Bináris kezeléshez a BinaryWriter és a BinaryReader osztályokat használjuk.
Fájl írása
dim szam As Char
dim f As New System.IO.FileStream(fajlnev, IO.FileMode.Create, IO.FileAccess.Write)
Dim bw As New System.IO.BinaryWriter(f) '
bw.Write(szam)
bw.Close()
f.Close()
Fájl olvasása
Fájlok olvasása történhet valóban binárisan:
dim f As New System.IO.FileStream(fajlnev, IO.FileMode.Create, IO.FileAccess.Write)
Dim br As New System.IO.BinaryReader(f) '
dim buffer(100) As Byte
br.Read(buffer,0,100)
br.Close()
Vagy használhatunk kényelmesebb módszert, azokat a metódusokat, amelyek a megfelelo adattípusú értékeket adják vissza. Ekkor persze tudni kell, hogy a következo beolvasandó adat milyen típusú. Az ilyen beolvasások után automatikusan annyit ugrik a fájlmutató, amekkora adatot beolvastunk.
dim f As New System.IO.FileStream(fajlnev, IO.FileMode.Create, IO.FileAccess.Write)
Dim br As New System.IO.BinaryReader(f) '
dim szam As Char
szam=br.ReadByte()
br.Close()
f.Close()