- 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 {
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();
}
}