C/C++教程

NIO通过Channel复制文件

本文主要是介绍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使用
性能 较低 较高
这篇关于NIO通过Channel复制文件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!