zoukankan      html  css  js  c++  java
  • 分散读取与聚集写入

    分散读取与聚集写入

    分散读取(scattering Reads):将通道中的数据分散到多个缓冲区中

    聚集写入(gathering Writes):将多个缓冲区的数据聚集到通道中

    package com.toov5.Nio;
    
    import java.io.IOException;
    import java.io.RandomAccessFile;
    import java.nio.ByteBuffer;
    import java.nio.channels.FileChannel;
    
    public class BufferTest03 {
       public static void main(String[] args) throws IOException {
           //随机访问
         RandomAccessFile raf = new RandomAccessFile("test.txt", "rw");
         //拿到通道
          FileChannel channel = raf.getChannel();
          //分配制定大小缓冲区
          ByteBuffer buffer1 = ByteBuffer.allocate(100);
          ByteBuffer buffer2 = ByteBuffer.allocate(1024);
          //分散读取
          ByteBuffer[] buffers = {buffer1,buffer2}; 
          //通道里面进行读取
           channel.read(buffers);
           //写入完毕之后 for 循环
           for(ByteBuffer byteBuffer : buffers) {
              //切换成读的模式
               byteBuffer.flip();
                
           }
           System.out.println(new String(buffers[0].array(),0,buffers[0].limit()));
           System.out.println("*****************************************");
           System.out.println(new String(buffers[1].array(),1,buffers[1].limit()));
           System.out.println(".....聚集读取.........");
           RandomAccessFile randomAccessFile = new RandomAccessFile("test2.txt", "rw");
           //获取通道
           FileChannel channel2 = randomAccessFile.getChannel();
           channel2.write(buffers);
           randomAccessFile.close();
           raf.close();
    }
    }

     分散读取 聚集写入

  • 相关阅读:
    CF161D Distance in Tree
    [WC2010]重建计划 长链剖分
    [FJOI2014]最短路径树问题 长链剖分
    [Vani有约会]雨天的尾巴 线段树合并
    Friend Links
    Nerdtree+高亮+图标配置
    【CF1416C】XOR Inverse
    01-Trie 学习
    【[USACO19DEC】Milk Visits G
    【ARC069D】Flags
  • 原文地址:https://www.cnblogs.com/toov5/p/9932751.html
Copyright © 2011-2022 走看看