java Channel是什么

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
喜欢就支持一下吧
点赞11 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容