我想知道复制大量文件的最佳方法是什么。
最佳答案
如果您在本地复制文件,您应该使用 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/