我想知道哪种方法可以复制大量文件。
答案 0 :(得分:4)
如果要在本地复制文件,则应使用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问题。
答案 1 :(得分:2)
“最佳”需要澄清。
我会委托rsync,它非常擅长复制大量具有大量选项的文件。我不知道rsync的Java实现很好。
答案 2 :(得分:2)
答案 3 :(得分:2)