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/tech/pnotes/245046.html