package nio; import java.io.FileNotFoundException; import java.io.RandomAccessFile; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; //nio分散读取和聚集写入 public class testScaAndGett { public static void main(String[] a){ //需要使用到randomAccessfile try { RandomAccessFile randomAccessFile = new RandomAccessFile("e://11.txt","rw"); FileChannel fileChannel = randomAccessFile.getChannel();//获取channel ByteBuffer by1 = ByteBuffer.allocate(10); ByteBuffer by2 = ByteBuffer.allocate(20); RandomAccessFile randomAccessFile1 = new RandomAccessFile("e://55.txt","rw"); FileChannel fileChannel1 = randomAccessFile1.getChannel(); ByteBuffer[] byteBuffers = {by1,by2};//分撒读取,就是使用多个buffer来装数据 while (fileChannel.read(byteBuffers) != -1){ by1.flip(); by2.flip(); fileChannel1.write(byteBuffers);//聚合,同上 by1.clear(); by2.clear(); } } catch (Exception e) { e.printStackTrace(); } } }
nio学习之分散读取和聚合
最新推荐文章于 2021-06-14 14:02:15 发布
本文详细介绍了如何使用Java NIO进行文件的分散读取和聚集写入操作,通过实例代码展示了如何利用ByteBuffer和FileChannel实现高效的数据读写。此方法能够显著提升大规模数据处理的效率。
摘要由CSDN通过智能技术生成