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.
-
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.
-
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.