Junior
Java'da qanday kirish-chiqish oqim turlari mavjud?
sobes.tech AI
AIdan javob
Java'da kirish va chiqish oqimlarining (java.io) ikki asosiy toifasi mavjud:
-
Bayt oqimlari (Byte Streams): Xom baytlar bilan ishlaydi. Rasm, audio, serializatsiya qilingan obyektlar kabi binar ma'lumotlarni ishlash uchun ishlatiladi.
- Asosiy sinflar:
InputStream(o'qish uchun) vaOutputStream(yazish uchun). - Ma'lumot manbalari/maqsadlari uchun voris sinflar:
- Fayllar:
FileInputStream,FileOutputStream - Bayt massivlari:
ByteArrayInputStream,ByteArrayOutputStream - Bufferlash:
BufferedInputStream,BufferedOutputStream - Filtrlash/transformatsiya:
FilterInputStream,FilterOutputStream(ota sinflarBufferedva boshqalar uchun) - Ob'ektlar (serializatsiya):
ObjectInputStream,ObjectOutputStream - Konsoldan kirish/chiqish:
System.in(InputStream),System.out(PrintStream,OutputStreamkengaytiradi)
- Fayllar:
- Asosiy sinflar:
-
Harf oqimlari (Character Streams): Unicode harflari bilan ishlaydi. Matn ma'lumotlarini ishlash uchun ishlatiladi. Ko'pincha ichki bayt oqimlaridan foydalanadi, baytlarni harflarga aylantiradi, belgilangan kodlash asosida.
- Asosiy sinflar:
Reader(o'qish uchun) vaWriter(yazish uchun). - Voris sinflar:
- Fayllar:
FileReader,FileWriter - Harf massivlari:
CharArrayReader,CharArrayWriter - Stringlar:
StringReader,StringWriter - Bufferlash:
BufferedReader,BufferedWriter - Filtrlash/transformatsiya:
FilterReader,FilterWriter - Formatlangan kirish/chiqish:
PrintWriter(yazish uchun),Scanner(o'qish uchun, lekin to'g'ridan-to'g'riReaderning vorisi emas, lekin ko'p ishlatiladi matnli kirish uchun) - Konsoldan kirish/chiqish:
System.in(viaInputStreamReader),System.out(viaPrintWriter)
- Fayllar:
- Asosiy sinflar:
Xulosa jadvali:
| Toifa | O'qish asoslari | Yozish asoslari | Ishlaydi bilan | Asosiy foydalanish joyi |
|---|---|---|---|---|
| Bayt oqimlari | InputStream |
OutputStream |
Baytlar | Binar ma'lumotlar, past darajadagi kirish-chiqish |
| Harf oqimlari | Reader |
Writer |
Harflar (char) | Matn ma'lumotlari, kodlash bilan ishlash |
Foydalanish misoli:
// Bayt oqimi bilan fayldan o'qish
import java.io.FileInputStream;
import java.io.IOException;
public class ByteStreamExample {
public static void main(String[] args) {
try (FileInputStream fis = new FileInputStream("data.bin")) {
int data;
while ((data = fis.read()) != -1) {
// Har bir baytni ishlash
System.out.println("O'qilgan bayt: " + data);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
// Harf oqimi bilan fayldan o'qish
import java.io.FileReader;
import java.io.IOException;
public class CharStreamExample {
public static void main(String[] args) {
try (FileReader fr = new FileReader("data.txt")) {
int data;
while ((data = fr.read()) != -1) {
// Har bir harfni ishlash
System.out.print((char) data);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}