CodeBlanks Logo Icon CodeBlanks

Buffer

Buffer ile NIO tamponunu öğrenirsin.

Buffer kavramı

NIO'da veri bir Buffer (arabellek) içinde taşınır. Buffer, ilkel türlerin bir dizisi gibidir; üstüne konum (position), sınır (limit) ve kapasite (capacity) durumları ekler. Bu durumlar sayesinde okuma ve yazma tek bir yapıda yönetilir.

Örnek: ByteBuffer b = ByteBuffer.allocate(4) dört baytlık bir tampon ayırır. b.put((byte) 5) bir bayt yazar; b.flip() yazma modundan okuma moduna geçirir; b.get() sıradaki baytı okur. Bu akış, blok blok veri işlemenin temelidir.

allocate ve wrap

İki yaygın buffer oluşturma yolu vardır. ByteBuffer.allocate(n) boş bir tampon ayırır; içine put ile veri yazılır. ByteBuffer.wrap(dizi) ise var olan bir bayt dizisini sarar ve doğrudan okunabilir.

Örnek: ByteBuffer.wrap(new byte[]{65, 66}) hazır diziyi tampon yapar; get() önce 65'i, sonra 66'yı verir. allocate yeni bellek ister, wrap ise var olanı kullanır. İkisi de aynı ByteBuffer API'sini sunar.

Uygulama ByteBuffer ile veri yaz ve oku

ByteBuffer.allocate(4) ile bir tampon oluştur. put ile (byte) 10 ve (byte) 20 yaz. flip ile okuma moduna geç. get ile ilk baytı al ve System.out.println ile yazdır.

Başlangıç kodu

Main.java
// ByteBuffer ile tampon oluştur
// put ile iki bayt yaz
// flip sonrası ilk baytı yazdır

Örnek çözüm

Main.java
import java.nio.ByteBuffer;

public class BufferDemo {
    public static void main(String[] args) {
        ByteBuffer b = ByteBuffer.allocate(4);
        b.put((byte) 10);
        b.put((byte) 20);
        b.flip();
        System.out.println(b.get());
    }
}

Beklenen çıktı

10

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 ByteBuffer ile yazma modundan okuma moduna geçen yöntem hangisidir?

  • allocate
  • flip Doğru cevap
  • put
  • get

Açıklama: flip, yazma modundan okuma moduna geçer.

2 flip çağrısını tamamla

Soru
b.____();
Cevap
b.flip();

Açıklama: flip, okuma moduna geçer.

3 Buffer yöntemlerini eşleştir

Kavram Anlamı
allocate Tampon ayırır
put Veri yazar
flip Modu çevirir
get Veri okur

Uzman bölümündeki tüm dersler