/** A bemenet és kimenet kezelése fejezet példaprogramjai.
A bemenet és kimenet a stream, azaz az adatfolyam fogalmához kapcsolódik. Egy adatfolyam nem más, mint valamilyen adatok sorozata. Vannak bemeneti adatfolyamok, amelyekből adatokat lehet beolvasni, és vannak kimeneti adatfolyamok, amelyekre adatokat lehet kiírni. Az adatfolyamok tehát egyirányúak, továbbá egy bemenet esetében csak az adatfolyam legelejéről tudunk adatokat leemelni (azaz elolvasni), egy kimenet esetében meg csak az adatfolyam végéhez tudunk új adatokat hozzáilleszteni (azaz hozzáírni). A bemeneti adatfolyamokhoz mindig hozzátartozik egy adatforrás, amelyből a beolvasott adatok jönnek, a kimeneti adatfolyamokhoz pedig egy adatnyelő, amelybe a kiírt adatok mennek. Adatforrás lehet például a billentyűzet, amin a felhasználó gépel, vagy akár egy fájl, amiből a program olvas. Adatnyelő szintén lehet egy fájl, de lehet például a képernyő is. A lényeg az, hogy az adatfolyamok bevezetésével egy olyan absztrakciós szintet hoztunk létre, amely egységesíti a különböző input/output eszközök használatát: operációs rendszertől és konkrét eszköztől függetlenül, ugyanazokkal a műveletekkel tudunk képernyőt, fájlokat vagy hálózatot kezelni, de például a párhuzamosan futó szálak is kommunikálhatnak adatfolyamokon keresztül egymással. A fejezet legelső szakaszában az adatfolyamokkal kapcsolatos lehetőségeket fogjuk áttekinteni.
Tartalomjegyzék a hivatkozott referenciákkal és felhasznált képekkel:
Miről szól ez a fejezet?
Adatfolyamok
Bájt- és karakterfolyamok
Feladat szerinti csoportosítás
Szabványos be- és kimenet, valamint hibafolyam
Alapfunkciók
Adatfolyam megnyitása és lezárása
  • Referenciák:
    • A {@link elte.java2_utikalauz5.io.SzokitSzerver} példaprogram
    • A {@link elte.java2_utikalauz5.io.SzokitKliens} példaprogram
Kiíró műveletek
Olvasó műveletek
  • Referenciák:
    • A {@link elte.java2_utikalauz5.io.Masolo} példaprogram
    • A {@link elte.java2_utikalauz5.io.Beolvas} példaprogram
A könyvjelző-mechanizmus
  • Referenciák:
    • A {@link elte.java2_utikalauz5.io.Ketszerezo} példaprogram
További tudnivalók}
Egy teljes példa
Az adatfolyamok adatainak tárolása
Fájlok
Csövek
Bájt- és karaktertömbök, sztringek
  • Referenciák:
    • A {@link elte.java2_utikalauz5.io.Tombok} példaprogram
Bájtfolyam felett létrehozott karakterfolyamok
  • Referenciák:
    • A {@link elte.java2_utikalauz5.io.Kodok} példaprogram
Adatfolyamok egymás után fűzése
  • Referenciák:
    • A {@link elte.java2_utikalauz5.io.SokMasolo} példaprogram
Szűrők
  • Referenciák:
    • A {@link elte.java2_utikalauz5.io.Vacsora} példaprogram
A szűrők működési elve: delegálás és toldalékolás
Adatfolyamok bufferelése
  • Referenciák:
    • A {@link elte.java2_utikalauz5.io.SumBuffer} példaprogram
Adattípus-értékek beolvasása és kiírása
Szöveges kiírás
  • Referenciák:
    • A {@link elte.java2_utikalauz5.io.Szoveges} példaprogram
A bemenet sorainak számolása
  • Referenciák:
    • A {@link elte.java2_utikalauz5.io.Borok} példaprogram
Adat visszatevése a bemenetre
  • Referenciák:
    • A {@link elte.java2_utikalauz5.io.Pushback} példaprogram
Objektumok beolvasása és kiírása
Objektumok szerializációja
A {@code Serializable} interfész
Az {@code Externalizable} interfész
  • Referenciák:
    • Az {@link elte.java2_utikalauz5.io.ExterTeszter} példaprogram
A tárolni kívánt adattagok kijelölése
Szerializációs jogosultságok
Közvetlen elérésű fájlok
A {@code File} osztály: kapcsolat a fájlrendszerrel
Könyvtárak kilistázása
A fájlokhoz való hozzáférés korlátozása
Szövegfeldolgozás
A beolvasott karakterek értelmezése
  • Referenciák:
    • A {@link elte.java2_utikalauz5.io.Szavakra} példaprogram
A tokenek előállítása
Egyéb műveletek
Számok beolvasása szövegfájlból
A Java módosított UTF-8 formátuma
Tömörítés: a {@code java.util.zip} csomag
Az új be- és kimenet könyvtár
A bufferek működése
Bufferek létrehozása
Tömb a buffer belsejében
Bufferek tartalmának megosztása
  • Referenciák:
    • A {@link elte.java2_utikalauz5.io.SumBuffer2} példaprogram
Különböző primitív típusok támogatása
Csak olvasható bufferek
Közvetlen és leképzett bufferek
Nem blokkoló IO
Példák gyakori feladatok megoldására
Számok olvasása szövegfájlból
  • Referenciák:
    • A {@link elte.java2_utikalauz5.io.Szoroz} példaprogram
Szövegfájlok kezelése
  • Referenciák:
    • Az {@link elte.java2_utikalauz5.io.Editor} példaprogram
Adatok bináris formában
  • Referenciák:
    • A {@link elte.java2_utikalauz5.io.TesztKliens} példaprogram
Többszálú szerver
  • Referenciák:
    • A {@link elte.java2_utikalauz5.io.TesztSzerver} példaprogram
Több kliens kiszolgálása egy szálon
  • Referenciák:
    • A {@link elte.java2_utikalauz5.io.TesztSzerver2} példaprogram
@link.forrásfájl {@docRoot}/../data/io/src package-info.java @author Kozsik Tamás */ package elte.java2_utikalauz5.io;