• 技术文章 >java >java基础

    java Channel是什么

    小妮浅浅小妮浅浅2021-05-19 09:23:47原创3818

    1、说明

    Channel是一个可以通过它读写数据的对象。它可以被视为IO中的流。但与流相比,它有一些不同:

    Channel是双向的,可以读也可以写,流是单向的。

    Channel可以异步读写。

    Channel的读写必须通过buffer对象。

    2、实例

    利用通道和非直接缓冲区完成。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    FileInputStream fis=null;           //引用

    FileOutputStream fout=null;

    FileChannel channel=null//通道引用

    FileChannel outchannel=null;

    try {

    fis = new FileInputStream("sb.jpg");     //源文件

    fout = new FileOutputStream("bb.jpg");  //目标文件  

    channel = fis.getChannel();             //获取连接源文件的通道

    outchannel = fout.getChannel();         //获取连接目标文件的通道

    //指定缓冲区 非直接缓冲区

    ByteBuffer buffer=ByteBuffer.allocate(1024);  //创建缓冲区 用来传输数据

    while(channel.read(buffer)!=-1)          //从连接源文件的管道读取数据到缓冲区

    {

    //将缓冲区反转

    buffer.flip();

    outchannel.write(buffer);        //将缓冲区中的数据写入连接到目标文件的管道

    buffer.clear();                  //"清空"缓冲区

    }

    以上就是java Channel的介绍,希望对大家有所帮助。更多Java学习指路:Java基础

    本教程操作环境:windows7系统、java10版,DELL G3电脑。

    专题推荐:java channel
    上一篇:java中Buffer是什么 下一篇:java中jstack是什么

    相关文章推荐

    • java中Class的三种实例化• java反射如何实例化对象• java反射怎样调用方法• java中LinkedHashMap和HashMap区别• java中LinkedHashMap添加元素• java中BigDecimal是什么• java BigDecimal的格式化• BigDecimal在java的异常解决• java内存结构的组成• java synchronized的三种同步

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网