Un cas d'utilisation assez courant de la ByteBuffer
consiste à construire une structure de données pièce par pièce, puis à écrire l'ensemble de cette structure sur le disque. flip
est utilisé pour inverser le ByteBuffer
de "lecture de l'E/S" ( put
ting) à "écriture sur E/S" ( get
ting) : après une séquence de put
est utilisé pour remplir le ByteBuffer
, flip
fixera la limite du tampon à la position actuelle et remettra la position à zéro. Cela a pour effet de rendre un futur get
o write
de la mémoire tampon écrire tout ce qui était put
dans le tampon et pas plus.
Après avoir terminé le put
vous pourriez vouloir réutiliser le ByteBuffer
pour construire une autre structure de données. Pour la "déplier", appelez clear
. Cela réinitialise la limite à la capacité (rendant toute la mémoire tampon utilisable), et la position à 0.
Donc, un scénario d'utilisation typique :
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);
}