Junior — Middle
Байт маалыматтар менен иштөөчү агымдар менен файл тутумун колдонгон агымдар арасындагы айырма эмнеде?
sobes.tech AI
AIден жооп
Javaда ағыстар (Streams) ар түрдүү болуп, байттык маалыматтар менен иштеген ағыстар менен файл тутумун колдонгон ағыстар ортосундагы айырмачылыктарды түшүнүү маанилүү.
-
Байттык маалыматтар агыстары (InputStream/OutputStream):
- Чынында байттар менен иштешет.
- Бинардык маалыматтарды окуу жана жазуу үчүн колдонулат, мисалы сүрөттөр, аудио, видео же кез келген бинардык форматтагы файлдар.
- Мисалдар:
FileInputStream,BufferedInputStream,ByteArrayInputStream.
-
Файл тутумун колдонгон ағыстар (Reader/Writer):
- Белгилер менен иштешет (тексттик маалыматтар).
- Тексттик файлдарды окуу жана жазуу үчүн каралган, коддоону эске алуу менен.
- Мисалдар:
FileReader,BufferedReader,FileWriter.
Негизги айырма — байттык ағыстар иштетилбеген байттар менен иштесе, белгилик ағыстар — белгилер менен иштейт, бул текст менен иштөөнү жеңилдетет жана коддоолорду эске алат.
Байттык файлды окуу мисалы:
try (FileInputStream fis = new FileInputStream("file.bin")) {
int data;
while ((data = fis.read()) != -1) {
// байт data иштетүү
}
}
Белгилүү файлды окуу мисалы:
try (BufferedReader reader = new BufferedReader(new FileReader("file.txt"))) {
String line;
while ((line = reader.readLine()) != null) {
// сапты иштетүү
}
}
Демек, агысты тандоо маалыматтардын түрүнө жана тапшырмага жараша болот.