原文:《Java NIO Scatter / Gather》
Scatter(分散):将一个 Channel 中的数据读取到多个 Buffer 中。
Gather(聚集):将多个 Buffer 中的数据写入一个 Channel 中。
Scatter/Gather 机制可以方便处理多个分开的数据块。如,一条消息由消息头与消息体组成;将它们分到两个不同的 buffer 中,可以更方便地分而治之。
Scatter:分散读取
示例
Java代码
-
ByteBuffer header = ByteBuffer.allocate(128);
-
ByteBuffer body = ByteBuffer.allocate(1024);
-
ByteBuffer[] resultBuffers = {header, body};
-
channel.read(resultBuffers);