Un caso d'uso abbastanza comune per ByteBuffer
è quello di costruire una struttura dati pezzo per pezzo e poi scrivere l'intera struttura su disco. flip
è usato per cambiare ByteBuffer
da "lettura da I / O" ( put
ting) a "scrittura su I / O" ( get
ting): dopo che una sequenza di put
s è stata usata per riempire ByteBuffer
, flip
imposterà il limite del buffer alla posizione corrente e azzerare la posizione. Questo ha l'effetto di creare un futuro get
o write
dal buffer scrivere tutto ciò che era put
nel buffer e non di più.
Dopo aver terminato put
, potresti voler riutilizzare ByteBuffer
per costruire un'altra struttura dati. Per "sbloccarlo", chiama clear
. Questo reimposta il limite alla capacità (rendendo utilizzabile tutto il buffer) e la posizione a 0.
Quindi, uno scenario di utilizzo tipico:
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);
}