直接上示例:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;
public class FileCopyUtil {
/**
* 使用文件通道的方式复制文件
* @param s 源文件
* @param t 目标文件
*/
public static void fileChannelCopy(File s,File t){
FileInputStream fis = null;
FileOutputStream fos = null;
FileChannel in = null;
FileChannel out = null;
try {
fis = new FileInputStream(s);
fos = new FileOutputStream(t);
in = fis.getChannel();
out = fos.getChannel();
in.transferTo(0, in.size(), out);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
fis.close();
in.close();
fos.close();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
File s = new File("D:\\baiduyun\\SVNsite-1.8.22.zip");
File t = new File("D:\\baiduyun\\copy.zip");
long start,end;
start = System.currentTimeMillis();
fileChannelCopy(s,t);
end = System.currentTimeMillis();
System.out.println("fileChannelCopy:"+(end-start));
}
}