Un caso de uso bastante común para el ByteBufferes construir una estructura de datos pieza por pieza y luego escribir esa estructura completa en el disco. flipse usa para cambiar ByteBufferde "lectura de E / S" ( putting) a "escribir en I / O" ( getting): después de que putse usa una secuencia de s para llenar el ByteBuffer, flipestablecerá 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 geto writedesde el búfer escriba todo lo que estaba puten el búfer y nada más.
Después de terminar put, es posible que desee reutilizarlo ByteBufferpara 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);
}