Junior — Middle
Bayt ma'lumotlari bilan ishlovchi oqimlar va fayl tizimini ishlatadigan oqimlar o'rtasidagi farq nima?
sobes.tech AI
AIdan javob
Java'da oqimlar (Streams) turli turlarda bo'lib, bayt ma'lumotlar bilan ishlaydigan oqimlar va fayl tizimini ishlatadigan oqimlar o'rtasidagi farqlarni tushunish muhimdir.
-
Bayt ma'lumotlar oqimlari (InputStream/OutputStream):
- Raws baytlar bilan ishlaydi.
- Rasm, audio, video yoki har qanday binar formatdagi fayllarni o'qish va yozish uchun ishlatiladi.
- Misollar:
FileInputStream,BufferedInputStream,ByteArrayInputStream.
-
Fayl tizimini ishlatadigan oqimlar (Reader/Writer):
- Belgilar bilan ishlaydi (matn ma'lumotlari).
- Kodlashni hisobga olgan holda matn fayllarini o'qish va yozish uchun mo'ljallangan.
- Misollar:
FileReader,BufferedReader,FileWriter.
Asosiy farq shundaki, bayt oqimlari ishlov berilmagan baytlar bilan ishlaydi, belgilar oqimlari esa belgilar bilan, bu matn bilan ishlashni osonlashtiradi va kodlashlarni hisobga oladi.
Bayt oqimi bilan faylni o'qish misoli:
try (FileInputStream fis = new FileInputStream("file.bin")) {
int data;
while ((data = fis.read()) != -1) {
// bayt data ni ishlash
}
}
Belgilar oqimi bilan faylni o'qish misoli:
try (BufferedReader reader = new BufferedReader(new FileReader("file.txt"))) {
String line;
while ((line = reader.readLine()) != null) {
// satr line ni ishlash
}
}
Shunday qilib, oqim tanlovi ma'lumotlar turi va vazifaga bog'liq.