JAVA复制文件的几种方法
小白写了一个测试类如下:
package com.yihuacomputer.fish.web;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.channels.FileChannel;
import java.nio.file.Files;
import org.apache.commons.io.FileUtils;
public class copyFile {
public static void main(String[] args) throws IOException {
copyFileFist();
copyFileSecond();
copyFileThird();
copyFileFourth();
}
public static void copyFileFist() throws IOException{
InputStream input = null;
OutputStream output = null;
try {
input = new FileInputStream("D://A.TXT");
output = new FileOutputStream("F://BB.TXT");
byte[] buf = new byte[1024];
int bytesRead;
while ((bytesRead = input.read(buf)) != -1) {
output.write(buf, 0, bytesRead);
}
} finally {
input.close();
output.close();
}
}
private static void copyFileSecond() throws IOException {
FileChannel inputChannel = null;
FileChannel outputChannel = null;
try {
inputChannel = new FileInputStream("D://A.TXT").getChannel();
outputChannel = new FileOutputStream("F://cc.TXT").getChannel();
outputChannel.transferFrom(inputChannel, 0, inputChannel.size());
} finally {
inputChannel.close();
outputChannel.close();
}
}
private static void copyFileThird() throws IOException {
FileUtils.copyFile(new File("D://A.TXT"), new File("F://cc.TXT"));
}
private static void copyFileFourth() throws IOException {
Files.copy(new File("D://A.TXT").toPath(), new File("D://cc.TXT").toPath());
System.out.println(new File("D://A.TXT").toPath());
}
}