您的位置:首页 > 编程语言 > Java开发

JavaNIO实现文件复制

2017-08-08 23:43 113 查看
NIO主要内容有Buffer、Channel、Charset及实现异步非阻塞IO的selector

这里通过使用IO流的getChannel()方法获取Channel,然后将文件内容映射到内存中获得Buffer 再将Buffer中的内容写入新的文件

package com.mark.learn.newio;

import java.io.*;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;

/**
* Created by Mark on 2017/8/8.
*/
public class Splendid {
public static void main(String[] args) {

//测试复制图片
String src="C:\\Users\\Mark\\Pictures\\Camera Roll\\na5.jpg";
String des="d:\\na5.jpg";
try {
copyFileUseNIO(src,des);
} catch (IOException e) {
e.printStackTrace();
}

}

static void copyFileUseNIO(String src, String des) throws IOException {

//IO流获取Channel
FileChannel inChannel = new FileInputStream(src).getChannel();
FileChannel outChannel = new FileOutputStream(des).getChannel();

//将文件映射到内存
MappedByteBuffer buffer = inChannel.map(FileChannel.MapMode.READ_ONLY, 0, new File(src).length());

//写文件
outChannel.write(buffer);
System.out.println("Copy file "+src+"To"+des+"has been successfully complieted.");
inChannel.close();
outChannel.close();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: