Java-最佳做法-如何批量复制许多文件?

pri*_*lia 1 java io multithreading


我要批量复制文件,最佳实践是什么?
例如我有:

LIst<String> pathesList ...
String dist = "c:/myfolder/";
Run Code Online (Sandbox Code Playgroud)

简单的方法是循环抛出pathesList并将每个路径副本复制到目标文件夹。
我的问题是,如果有数百个文件,并且每个文件都很大,大约50-100mb。
你能建议我什么?
也许要做多线程复制文件?
这些文件不在同一文件夹中,所有文件的目的地均为一个文件夹。谢谢。

Pet*_*rey 6

复制文件几乎可以确定是IO绑定的。使其更快的方法是使用支持更多IOP的磁盘子系统。例如,SSD可以支持的IOPS数量是HDD的1000倍。这不是您可以通过软件提高的速度,因为它不是瓶颈。

您可以采取一些技巧来加快磁盘访问速度,但是OS可以为您完成大多数操作,例如,在顺序读取时预取文件并缓存文件写入,而不是立即将其提交到磁盘。