我很好奇是使用 Process executor 来复制文件更好,还是使用 Java 复制方法更好。
问问题
188 次
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。
- 您可以更好地控制复制过程,例如检查路径有效性和其他内容。如果您调用外部命令来执行此操作,则会有额外的错误检查开销,这样会变得更加复杂。
- 此外,如果您的程序在其他平台上使用,它可能突然无法工作,因为您不知道如何在那里调用本机复制命令。您必须为每个不同支持的平台提供单独的解决方案,这在某种程度上违背了使用 Java 的目的。
- 调用外部进程更昂贵且更慢。毕竟,操作系统必须创建一个新进程并执行与之相关的所有任务,此外,您还必须检查所有可能的错误情况。Command 不在您认为的位置,Command 不会执行,不同版本的行为略有不同。如何检查它是否有效?等等。
于 2013-06-13T09:59:40.510 回答
1
出于其他人所说的可移植性原因,我会使用 Java 复制方法,但我认为它也会简化代码中的错误处理。
我会考虑使用操作系统命令的唯一原因是,如果您的应用程序的主要功能是复制文件,并且操作系统和 Java 实现之间存在相当大的性能差异。
如果复制文件只是应用程序的一小部分,请选择 Java。
于 2013-06-13T10:01:58.013 回答