Sobes.tech
Junior

Bufferlemenin avantajı nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Java I/O'da tamponlama, düşük seviyeli giriş-çıkış işlemlerine yapılan erişim sayısını azaltır ve bu da performansı önemli ölçüde artırır. Büyük veri bloklarını tek bir sistem çağrısıyla okumak/yazmak, küçük işlemlere kıyasla daha etkilidir.

Okuma sırasında: BufferedInputStream, temel akıştan verileri tampon belleğe okur. Küçük veri parçaları talep edildiğinde, bunlar her seferinde kaynaktan (disk, ağ) erişim gerektirmeden tampondan alınır. Sadece tampon boşaldığında yeni bir veri bloğu okunur.

Yazarken: BufferedOutputStream önce verileri tampon belleğe yazar. Temel akışa yazma, tampon dolduğunda veya flush() yöntemi çağrıldığında gerçekleşir. Bu, yazma sistem çağrısı sayısını en aza indirir.

Avantajlar:

  • Ek maliyetlerin azaltılması: İşletim sistemi ve donanım erişim sayısı azaltılır.
  • Bant genişliğinin artırılması: Veriler büyük bloklar halinde iletilir.
  • Performans artışı: Giriş-çıkış işlemlerinin toplam süresi kısalır.

BufferedInputStream kullanımına örnek:

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) {
                // Okunan baytın işlenmesi
                System.out.print((char) data);
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}