1、说明
Channel是一个可以通过它读写数据的对象。它可以被视为IO中的流。但与流相比,它有一些不同:
Channel是双向的,可以读也可以写,流是单向的。
Channel可以异步读写。
Channel的读写必须通过buffer对象。
2、实例
利用通道和非直接缓冲区完成。
FileInputStreamfis=null;//引用 FileOutputStreamfout=null; FileChannelchannel=null;//通道引用 FileChanneloutchannel=null; try{ fis=newFileInputStream("sb.jpg");//源文件 fout=newFileOutputStream("bb.jpg");//目标文件 channel=fis.getChannel();//获取连接源文件的通道 outchannel=fout.getChannel();//获取连接目标文件的通道 //指定缓冲区非直接缓冲区 ByteBufferbuffer=ByteBuffer.allocate(1024);//创建缓冲区用来传输数据 while(channel.read(buffer)!=-1)//从连接源文件的管道读取数据到缓冲区 { //将缓冲区反转 buffer.flip(); outchannel.write(buffer);//将缓冲区中的数据写入连接到目标文件的管道 buffer.clear();//"清空"缓冲区 }
以上就是java Channel的介绍,希望对大家有所帮助。更多Java学习指路:Java基础
原文来自:https://www.py.cn© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容