基本用法 - 建立 ByteBuffer

有兩種方法可以建立一個 ByteBuffer,其中一個可以再次細分。

如果你已經存在 byte[],你可以包裝ByteBuffer 中以簡化處理:

byte[] reqBuffer = new byte[BUFFER_SIZE];
int readBytes = socketInputStream.read(reqBuffer);
final ByteBuffer reqBufferWrapper = ByteBuffer.wrap(reqBuffer);

這將是處理低階網路互動的程式碼的可能性

如果你沒有已經存在的 byte[],你可以在一個專門為緩衝區分配的陣列上建立一個 ByteBuffer,如下所示:

final ByteBuffer respBuffer = ByteBuffer.allocate(RESPONSE_BUFFER_SIZE);
putResponseData(respBuffer);
socketOutputStream.write(respBuffer.array());

如果程式碼路徑對效能至關重要且需要直接系統記憶體訪問,則 ByteBuffer 甚至可以使用 #allocateDirect() 分配直接緩衝區