使用FileReader&FileWriter类可实现文件复制,此方法比前几种更为简单,但无法指定文件编码。
实现:
package utils;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class IOUtils {
public static void copyFile(File src, File dest) {
if (!src.exists()) {
System.out.println("源文件不存在");
return;
}
if (dest.exists() && (!dest.isFile())) {
System.out.println("目标文件是文件夹");
return;
}
try {
FileReader fr = new FileReader(src);
FileWriter fw = new FileWriter(dest);
char[] chars = new char[20];
int b;
while ((b = fr.read(chars, 0, chars.length)) != -1) {
fw.write(chars);
fw.flush();
}
System.out.println("复制成功");
fr.close();
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
测试:
package test;
import static org.junit.Assert.*;
import java.io.File;
import org.junit.Test;
import utils.IOUtils;
public class IOUtilsTest {
@Test
public void testCopuFile() {
File src = new File("src/src.txt");
File dest = new File("src/dest.txt");
IOUtils.copyFile(src, dest);
}
}
测试可见实现了文件复制。