İçin oldukça yaygın bir kullanım durumu, ByteBuffer
bazı veri yapılarını parça parça inşa etmek ve daha sonra tüm yapıyı diske yazmaktır. flip
çevirmek için kullanılan ByteBuffer
"I / O okuma" (den put
için ting) "I yazma / O" ( get
tim) bir dizi sonra put
s doldurmak için kullanılır ByteBuffer
, flip
mevcut konumuna göre tampon sınırı koyacaktır ve konumu sıfırlayın. Bu, bir gelecek yapma etkisine sahiptir get
ya write
da arabellekten tüm olanı arabelleğe yazıp put
daha fazlasını değil.
Bitirdikten sonra put
, ByteBuffer
başka bir veri yapısı oluşturmak için yeniden kullanmak isteyebilirsiniz . "Açmak" için arayın clear
. Bu, kapasitenin sınırını (tamponun tamamını kullanılabilir hale getirir) ve konumu 0'a sıfırlar.
Dolayısıyla, tipik bir kullanım senaryosu:
ByteBuffer b = new ByteBuffer(1024);
for(int i=0; i<N; i++) {
b.clear();
b.put(header[i]);
b.put(data[i]);
b.flip();
out.write(b);
}