Sobes.tech
Junior

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();
        }
    }
}