Bufferlashning afzalligi nima?
sobes.tech AI
AIdan javob
Java I/O'da bufferlash, pastki darajadagi kirish-chiqish operatsiyalariga bo'lgan murojaatlarni kamaytiradi, bu esa samaradorlikni sezilarli darajada oshiradi. Katta blok ma'lumotlarni bir marta tizim chaqiruvi bilan o'qish/yazish, kichik operatsiyalarni ko'p qilishdan ko'ra samaraliroq.
O'qishda: BufferedInputStream asosiy oqimdan ma'lumotlarni buffer xotirasiga o'qiydi. Agar kichik ma'lumotlar bo'laklari talab qilinsa, ular har safar manbaga (disk, tarmoq) murojaat qilmasdan bufferdan olinadi. Faqat buffer bo'shashi bilan yangi ma'lumot bloki o'qiladi.
Yozishda: BufferedOutputStream avval ma'lumotlarni bufferga yozadi. Asosiy oqimga yozish, buffer to'ldirilganda yoki flush() metodi chaqirilganda amalga oshadi. Bu yozish uchun tizim chaqiruvlar sonini minimallashtiradi.
Afzalliklar:
- Qo'shimcha xarajatlarni kamaytirish: OS va uskunaga bo'lgan murojaatlarni kamaytiradi.
- Kenglikni oshirish: Ma'lumotlar katta bloklar bilan uzatiladi.
- Samaradorlikni oshirish: Umumiy kirish-chiqish operatsiyalarining vaqti qisqaradi.
BufferedInputStreamdan foydalanish misoli:
import java.io.FileInputStream;
import java.io.BufferedInputStream;
import java.io.IOException;
public class BufferedReaderExample {
public static void main(String[] args) {
try (FileInputStream fileInputStream = new FileInputStream("example.txt");
BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream)) {
int data;
while ((data = bufferedInputStream.read()) != -1) {
// O'qilgan baytni ishlash
System.out.print((char) data);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}