使用java复制文件。 FileUtils.copyFiles vs os cmd copy?

时间:2013-06-13 09:46:43

标签: java

我很好奇使用Process executor复制文件或者使用Java复制方法更好。

4 个答案:

答案 0 :(得分:2)

使您的程序在功能方面尽可能便携。

如果您使用cmd copy,则必须测试平台并为每个平台处理它。如果您使用cmd copy,您甚至可能无法覆盖所有平台。您必须处理不同copy的不同platforms进程背后的所有细微差别。您需要知道应该如何使用每个这样的过程,如何传递参数以及所有过程。

所以,我会说你去使用你的FileUtils。因为,您的功能将更加便携。

答案 1 :(得分:1)

更好地使用java复制方法,就像更改平台一样,而不是使用能够工作的代码。

答案 2 :(得分:1)

如果您已经有一个java程序并且想要从该java程序中复制文件,那么一定要使用FileUtils。

  1. 您可以更好地控制复制过程,例如检查路径有效性和其他内容。如果你调用外部命令来执行此操作,则会产生额外的错误检查开销,这样会变得更加复杂。
  2. 此外,如果您的程序在某个其他平台上使用,它可能突然不起作用,因为您不知道如何在那里调用本机复制命令。您必须为每个不同支持的平台提供单独的解决方案,这无论如何都会破坏使用Java的目的。
  3. 调用外部进程要贵得多且速度慢。毕竟,操作系统必须创建一个新进程并执行与之关联的所有任务,因此您必须检查所有可能的错误情况。命令不在您认为的位置,Command不执行,不同版本的行为略有不同。如何检查它是否有效?等等。

答案 3 :(得分:1)

出于其他人所说的可移植性原因,我会继续使用Java复制方法,但我认为这也会简化代码中的错误处理。

我考虑使用操作系统命令的唯一原因是,如果您的应用程序的 主要 功能是复制文件并且之间存在相当大的性能差异操作系统和Java实现。

如果复制文件只是应用程序的一小部分,请转到Java。