NIO通过Channel复制文件


 1  public static void main(String[] args) throws IOException {
 2         //创建RandomAccessFile源文件
 3         RandomAccessFile rabsrc = new RandomAccessFile("mm.png","rw");
 4         //获取源文件的Channel
 5         FileChannel srcChannel = rabsrc.getChannel();
 6         //目标文件
 7         RandomAccessFile radTarget = new RandomAccessFile("D://download//java//mm.png","rw");
 8         //生成目标文件的Channel通道
 9         FileChannel fc = radTarget.getChannel();
10         //调用transferTo
11         assert false;
12         long transferTo = srcChannel.transferTo(0,srcChannel.size(),fc);
13         if(transferTo >0){
14             System.out.println("复制成功");
15         }
16         rabsrc.close();
17         srcChannel.close();
18         radTarget.close();
19         fc.close();
20     }
区别 Stream Channel
支持异步 不支持 支持
是否可双向传输数据 不能,只能单向 可以,既可以从通道读取数据,也可以向通道写入数据
是否结合Buffer使用 不能 必须结合Buffer使用
性能 较低 较高

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/245046.html

(0)
上一篇 2022年4月18日
下一篇 2022年4月18日

相关推荐

发表回复

登录后才能评论