Sobes.tech
Junior — Middle

Aký je rozdiel medzi tokmi, ktoré pracujú s bajtovými dátami, a tými, ktoré používajú súborový systém?

sobes.tech AI

Odpoveď od AI

V Jave existujú rôzne typy prúdov (Streams), a je dôležité pochopiť rozdiely medzi prúdmi pracujúcimi s bajtmi a tými, ktoré používajú súborový systém.

  1. Bajtové prúdy (InputStream/OutputStream):

    • Pracujú s surovými bajtmi.
    • Používajú sa na čítanie a zápis binárnych dát, ako sú obrázky, zvuk, video alebo akýkoľvek súbor v binárnom formáte.
    • Príklady: FileInputStream, BufferedInputStream, ByteArrayInputStream.
  2. Prúdy využívajúce súborový systém (Reader/Writer):

    • Pracujú s znakmi (textové údaje).
    • Sú určené na čítanie a zápis textových súborov s prihliadnutím na kódovanie.
    • Príklady: FileReader, BufferedReader, FileWriter.

Hlavný rozdiel je v tom, že bajtové prúdy pracujú s nezpracovanými bajtmi, zatiaľ čo znakové prúdy pracujú so znakmi, čo uľahčuje prácu s textom a zohľadňuje kódovanie.

Príklad čítania súboru bajtovým prúdom:

try (FileInputStream fis = new FileInputStream("file.bin")) {
    int data;
    while ((data = fis.read()) != -1) {
        // spracovanie bajtu data
    }
}

Príklad čítania súboru znakovým prúdom:

try (BufferedReader reader = new BufferedReader(new FileReader("file.txt"))) {
    String line;
    while ((line = reader.readLine()) != null) {
        // spracovanie riadku line
    }
}

Takže výber prúdu závisí od typu dát a úlohy.