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();
    }
    }

     分散读取 聚集写入

  • 相关阅读:
    结构体字节对齐
    ORACLE自增长字段实现
    Oracle 11.2.0.2新特性——用户重命名(Rename User)
    oracle expdp/impdp 用法详解
    sql语句面试题(城市人口统计) .
    ORA30553: 函数不确定!
    SQL Express自动备份 .
    SQL 2005的DES加密算法
    SQL 2005加密数据方法
    CREATE VIEW ORA01031
  • 原文地址:https://www.cnblogs.com/toov5/p/9932751.html
Copyright © 2011-2022 走看看