package com.zq;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;
/**
* 使用NIO对文件进行快速拷贝
*/
public class FileCopy {
public static void fileCopy( File in, File out )throws IOException {
FileChannel inChannel = new FileInputStream( in ).getChannel();
FileChannel outChannel = new FileOutputStream( out ).getChannel();
try {
int maxCount = (64 * 1024 * 1024) - (32 * 1024);
long size = inChannel.size();
long position = 0;
while ( position < size ) {
position += inChannel.transferTo( position, maxCount, outChannel );
}
}
finally {
if ( inChannel != null ) {
inChannel.close();
}
if ( outChannel != null ) {
outChannel.close();
}
}
}
public static void main(String[] args) {
File in = new File("E:\\zq\\1.JPG");
File out = new File("E:\\zq.JPG");
try {
FileCopy.fileCopy(in, out);
} catch (IOException e) {
e.printStackTrace();
}
}
}