Một trường hợp sử dụng khá phổ biến ByteBufferlà xây dựng từng phần một cấu trúc dữ liệu và sau đó ghi toàn bộ cấu trúc đó vào đĩa. flipđược sử dụng để lật ByteBuffertừ "đọc từ I / O" ( putting) sang "ghi vào I / O" ( getting): sau khi một chuỗi puts được sử dụng để điền vào ByteBuffer, flipsẽ đặt giới hạn của bộ đệm ở vị trí hiện tại và đặt lại vị trí về không. Điều này có tác dụng tạo ra một tương lai gethoặc writetừ bộ đệm ghi tất cả những gì đã có putvào bộ đệm và không còn nữa.
Sau khi hoàn thành put, bạn có thể muốn sử dụng lại ByteBufferđể xây dựng một cấu trúc dữ liệu khác. Để "mở" nó, hãy gọi clear. Điều này đặt lại giới hạn dung lượng (làm cho tất cả bộ đệm có thể sử dụng được) và vị trí thành 0.
Vì vậy, một kịch bản sử dụng điển hình:
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);
}