本文主要是介绍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复制文件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!