• 技术文章 >java >java基础

    java Channel是什么

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

    1、说明

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

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

    Channel可以异步读写。

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

    2、实例

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

    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学习网