博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java-NIO(六):Channel聚集(gather)写入与分散(scatter)读取
阅读量:7113 次
发布时间:2019-06-28

本文共 1602 字,大约阅读时间需要 5 分钟。

  • Channel聚集(gather)写入:

聚集写入( Gathering Writes)是指将多个 Buffer 中的数据“聚集”到 Channel。 特别注意:按照缓冲区的顺序,写入 position limit 之间的数据到 Channel 。 

  • Channel分散(scatter)读取:

分散读取( Scattering Reads)是指从 Channel 中读取的数据“分散” 到多个 Buffer 中。 特别注意:按照缓冲区的顺序,从 Channel 中读取的数据依次将 Buffer 填满。

  • 聚集写入( Gathering Writes)和分散读取( Scattering Reads测试:
1 @Test 2     public void testGatherScatter() throws IOException { 3         RandomAccessFile randomAccessFile = new RandomAccessFile("d:\\ce.txt", "rw"); 4         // 获取通道 5         FileChannel channel = randomAccessFile.getChannel(); 6  7         // 申请缓存空间 8         ByteBuffer byteBuffer00 = ByteBuffer.allocate(128); 9         ByteBuffer byteBuffer01 = ByteBuffer.allocate(1024);10 11         // 通过channel.read(ByteBuffer[] byteBuffers),将数据分散读取到byteBuffer00,byteBuffer0113         ByteBuffer[] byteBuffers = { byteBuffer00, byteBuffer01 };14         channel.read(byteBuffers);15 16         for (ByteBuffer byteBuffer : byteBuffers) {17             byteBuffer.flip();18         }19 20         System.out.println(new String(byteBuffers[0].array(), 0, byteBuffers[0].limit()));21         System.out.println("-----------------------------------------------------------");22         System.out.println(new String(byteBuffers[1].array(), 0, byteBuffers[1].limit()));23 24         // 聚集写入25         RandomAccessFile randomAccessFile2 = new RandomAccessFile("d:\\ce_copy.txt", "wr");26         // 1、获取管道27         FileChannel channel2 = randomAccessFile2.getChannel();28 29         // 2、通过管道将数据写入30         channel2.write(byteBuffers);31 32         channel2.close();33         channel.close();34     }

 

转载地址:http://qtghl.baihongyu.com/

你可能感兴趣的文章
juniper路由器配置
查看>>
jQuery一点一滴系列教程(第三点)
查看>>
ARP解决方法/工具 真假ARP防范区别方法 ARP终极解决方案
查看>>
系统数据权限的实现方案
查看>>
华为vlan划分,单臂路由以及静态路由
查看>>
UCD 2010百度工作坊
查看>>
ssh2免密码登录
查看>>
4_move_find_into_model
查看>>
MySQL · 捉虫动态 · UK 包含 NULL 值备库延迟分析
查看>>
windows server 2012 standard Evaluation 安装试用
查看>>
windows server 2008中配置TCP/IP
查看>>
网管必读:交换机技术简介及应用分析
查看>>
.NET多线程编程(9)——Thread类
查看>>
HP DL380G6上安装配置Vmware_ESXI4.1
查看>>
单IP无TMG拓扑Lync Server 2013:活动目录
查看>>
3.VMware vsphere 5.0新体验-安装VMware Center
查看>>
趣题: 一道面试题的解法
查看>>
Java Scoket之java.io.EOFException解决方案
查看>>
Oracle分析函数四——函数RANK,DENSE_RANK,FIRST,LAST…
查看>>
Android应用程序启动过程源代码分析(5)
查看>>