当前位置:网站首页 > Java基础 > 正文

java nio系列教程四



Scattering Reads
Scattering Reads是指数据从一个channel读取到多个buffer中。如下图描述:

代码示例如下:

注意buffer首先**入到数组,然后再将数组作为channel.read() 的输入参数。read()方法按照buffer在数组中的顺序将从channel中读取的数据写入到buffer,当一个buffer被写满后,channel紧接着向另一个buffer中写。

Scattering Reads在移动下一个buffer前,必须填满当前的buffer,这也意味着它不适用于动态消息(译者注:消息大小不固定)。换句话说,如果存在消息头和消息体,消息头必须完成填充(例如 128byte),Scattering Reads才能正常工作。

Gathering Writes

Gathering Writes是指数据从多个buffer写入到同一个channel。如下图描述:

代码示例如下:

buffers数组是write()方法的入参,write()方法会按照buffer在数组中的顺序,将数据写入到channel,注意只有position和limit之间的数据才会被写入。因此,如果一个buffer的容量为128byte,但是仅仅包含58byte的数据,那么这58byte的数据将被写入到channel中。因此与Scattering Reads相反,Gathering Writes能较好的处理动态消息。

转自:http://ifeve.com/java-nio-scattergather/

  • 上一篇: java232教程
  • 下一篇: java116键盘使用教程
  • 版权声明


    相关文章:

  • java232教程2026-01-22 12:18:05
  • java堆栈视频教程2026-01-22 12:18:05
  • windows7 java安装教程2026-01-22 12:18:05
  • 达内2013 java教程2026-01-22 12:18:05
  • java相册教程2026-01-22 12:18:05
  • java116键盘使用教程2026-01-22 12:18:05
  • java出场序教程2026-01-22 12:18:05
  • java 可视化教程2026-01-22 12:18:05
  • list菜鸟教程 java2026-01-22 12:18:05
  • java编译器使用教程2026-01-22 12:18:05