Un caso de uso bastante común para el ByteBuffer
es construir una estructura de datos pieza por pieza y luego escribir esa estructura completa en el disco. flip
se usa para cambiar ByteBuffer
de "lectura de E / S" ( put
ting) a "escribir en I / O" ( get
ting): después de que put
se usa una secuencia de s para llenar el ByteBuffer
, flip
establecerá el límite del búfer en la posición actual y restablezca la posición a cero. Esto tiene el efecto de hacer que un futuro get
o write
desde el búfer escriba todo lo que estaba put
en el búfer y nada más.
Después de terminar put
, es posible que desee reutilizarlo ByteBuffer
para construir otra estructura de datos. Para "abrirlo", llame clear
. Esto restablece el límite de la capacidad (haciendo que todo el búfer sea utilizable) y la posición a 0.
Entonces, un escenario de uso típico:
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);
}