- 使用FileStreams复制
@SneakyThrows
public static void copyFileByFileStreams(File source, File dest){
try (InputStream inputStream = new FileInputStream(source);
OutputStream outputStream = new FileOutputStream(dest);) {
byte[] buf = new byte[1024];
int buffRead;
while ((buffRead = inputStream.read(buf)) > 0) {
outputStream.write(buf, 0, buffRead);
}
}
}
- 使用FileChannel复制
@SneakyThrows
public static void copyFileByFileChannel(File source, File dest) {
try (FileChannel inputChannel = new FileInputStream(source).getChannel();
FileChannel outputChannel = new FileOutputStream(dest).getChannel();) {
outputChannel.transferFrom(inputChannel, 0, inputChannel.size());
}
}
- 使用Commons IO复制
@SneakyThrows
public static void copyFileUsingJava7Files(File source, File dest) {
Files.copy(source.toPath(), dest.toPath());
}
- 使用Java7的Files类复制
@SneakyThrows
private static void copyFileUsingApacheCommonsIO(File source, File dest) {
FileUtils.copyFile(source, dest);
}