其他分享
首页 > 其他分享> > 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使用
性能 较低 较高

标签:transferTo,srcChannel,NIO,radTarget,RandomAccessFile,复制,close,Channel
来源: https://www.cnblogs.com/panther9985/p/16154795.html