Java 文件复制
程序员文章站
2022-06-10 11:05:56
...
实现文件复制有多种方法
1 使用Files 的 copy
2 使用stream 如 FileWriter FileReader 实现
3 使用FileChannel
推荐使用 FileChannel ,FileChannel 多线程 速度快 没有文件编码问题
但是FileChannel是 Java7的新特性
1 使用File copy
public static boolean copyFile1(File fromFile, File toFile)
throws IOException {
if (fromFile == null || toFile == null) {
return false;
}
Path destination = Files.copy(fromFile.toPath(), toFile.toPath(),
StandardCopyOption.REPLACE_EXISTING);
if (destination.equals(toFile.toPath())) {
return true;
}
return false;
}
2 使用流
public static boolean copyFile2(File fromFile, File toFile) {
if (fromFile == null || toFile == null) {
return false;
}
// copy file
try (BufferedReader reader = new BufferedReader(
new FileReader(fromFile));
BufferedWriter writer = new BufferedWriter(
new FileWriter(toFile))) {
String line = null;
while ((line = reader.readLine()) != null) {
writer.write(line);
writer.newLine();
}
return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
3 使用FileChannel
public static boolean copyFile3(File fromFile, File toFile) {
if (fromFile == null || toFile == null) {
return false;
}
// copy file
try (FileInputStream in = new FileInputStream(fromFile);
FileOutputStream ou = new FileOutputStream(toFile);
FileChannel ci = in.getChannel();
FileChannel co = ou.getChannel()) {
long size = ci.transferTo(0, ci.size(), co);
if (size == fromFile.length()) {
return true;
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
推荐阅读
-
电脑安装ABBYY FineReader 12提示访问文件被拒绝的解决方法
-
迅雷怎么分享文件?迅雷下载文件链接复制分享的方法
-
关于AndroidStudio R文件莫名其妙缺失的快速解决方法
-
钉钉app怎么复制表单? 钉钉表单复制的技巧
-
MATLAB怎么读取excel文件中的数据?
-
Android Caused by: java.lang.ClassNotFoundException解决办法
-
迅雷看看播放器怎么关联文件,迅雷看看关联文件的方法
-
腾讯文档星标文件怎么查看? 腾讯文档查看星标文档的教程
-
Android studio怎么设置文件结构弹窗?
-
使用python制作一个为hex文件增加版本号的脚本实例