java - 有效的文件复制

标签 java file io file-copying

我想知道复制大量文件的最佳方法是什么。

最佳答案

如果您在本地复制文件,您应该使用 FileChannel.transferFrom() 或 FileChannel.transferTo()。例如:

FileInputStream is = new FileInputStream(file);
FileOutputStream fos = new FileOutputStream(oFile);
FileChannel f = is.getChannel();
FileChannel f2 = fos.getChannel();

f.transferTo(0, f.size(), f2);

f2.close();
f.close();

在许多平台上,复制将通过 DMA 进行,并且速度尽可能快。

如果您通过网络复制文件,那么您的情况就不同了。如果某些文件可能已经存在,那么您应该查看 rsync,因为它可以避免传输双方相同的部分文件。如果最常见的情况是文件不存在于目标机器上,那么您需要使用 scp 之类的东西。为此,请参阅 this问题。

关于java - 有效的文件复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1706496/

相关文章:

c - 文件处理: unusual error reading file

java - 如何使用按钮向 JFrame 添加 1 个绘图?

MYSQL TINYBLOB和LONGBLOB

python - Selenium 在下载时给出文件名

io - 使用可分配/假定大小的数组和名单读写

ruby - 如何向 ruby​​ -n -e 提供 $INPUT_RECORD_SEPARATOR?

java - 如何判断字符串中是否存在未知数字?

java - 泄漏了最初在此处添加的窗口 com.android.internal.policy.impl.PhoneWindow$DecorView{b5596468 V.E..... R.....ID 0,0-456,144}

java - Java 如何检查一个值是否存在于数组中?

java - 如何将 HTTP 请求正文写入 Java Web 应用程序中的文件?