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使用 |
性能 | 较低 | 较高 |
标签:transferTo,srcChannel,NIO,radTarget,RandomAccessFile,复制,close,Channel 来源: https://www.cnblogs.com/panther9985/p/16154795.html