基本用法 - 建立 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()
分配直接緩衝區