java.nio: 使用FileChannel复制文件(与众不同)

作者在 2011-12-11 00:22:33 发布以下内容
 FileChannel类中有一方法transferFrom()可以方便完成文件的复制。详细介绍请查JDK文档。
 据JDk文档上介绍说:“与从源通道读取并将内容写入此通道的简单循环语句相比,此方法可能高效得多。”
程序中如有用到文件复制的时候,用此方法试吧。

try {
    // 获得源文件的通道
    FileChannel srcChannel = new FileInputStream("srcFilename").getChannel();

    // 获得目的文件通道
    FileChannel dstChannel = new FileOutputStream("dstFilename").getChannel();

    // 将源文件内容复制到目的文件
    dstChannel.transferFrom(srcChannel, 0, srcChannel.size());

    // 关闭通道
    srcChannel.close();
    dstChannel.close();
} catch (IOException e) {
}
 
对应的,FileChannel类中也有transferTo()方法,从字面上可以猜知,该方法亦能完成文件的复制,只要这样即可:
srcChannel.transferTo(0, srcChannel.size(),dstChannel);
  
感觉比在IO中使用繁琐的循环读写方便多了。Y(^_^)Y


NIO | 阅读 3745 次
文章评论,共0条
游客请输入验证码
浏览68485次
最新评论