0

我很好奇是使用 Process executor 来复制文件更好,还是使用 Java 复制方法更好。

4

4 回答 4

2

使您的程序在功能方面尽可能可移植。

如果使用cmd copy,则必须测试平台并针对每个平台进行处理。如果您使用cmd copy,您甚至可能无法覆盖所有平台。你必须处理不同copy过程背后的所有微妙之处platforms。你需要知道应该如何使用每个这样的过程,应该如何传递参数等等。

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

于 2013-06-13T09:49:34.420 回答
1

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

于 2013-06-13T09:51:54.210 回答
1

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

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

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

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

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

于 2013-06-13T10:01:58.013 回答