Bufferləmənin üstünlüyü nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Java I/O-da bufferləmə, aşağı səviyyəli giriş-çıxış əməliyyatlarına edilən müraciətlərin sayını azaldır və bu, performansı əhəmiyyətli dərəcədə artırır. Böyük blok məlumatların bir sistem çağırışı ilə oxunması/yazılması, kiçik əməliyyatların çoxundan daha səmərəlidir.
Oxuma zamanı: BufferedInputStream əsas axından məlumatları tampon yaddaşa oxuyur. Kiçik məlumat hissələri tələb olunduqda, onlar hər dəfə mənbəyə (disk, şəbəkə) müraciət etmədən tampondan götürülür. Yalnız tampon boşaldıqda yeni məlumat bloku oxunur.
Yazarkən: BufferedOutputStream əvvəlcə məlumatları tamponda yazır. Əsas axına yazma ya tampon dolduqda, ya da flush() metodu çağırıldıqda baş verir. Bu, yazma üçün sistem çağırışlarının sayını minimuma endirir.
Üstünlüklər:
- Əlavə xərclərin azaldılması: Əməliyyat sisteminə və avadanlığa edilən müraciətlərin sayı azaldılır.
- Bant genişliyinin artırılması: Məlumatlar böyük bloklar şəklində ötürülür.
- Performansın yaxşılaşdırılması: Ümumi giriş-çıxış əməliyyatlarının vaxtı azaldılır.
BufferedInputStream istifadəsinə nümunə:
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) {
// Oxunan baytı emal et
System.out.print((char) data);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}