【问题标题】:DOS 'copy' Command from Java [closed]来自Java的DOS“复制”命令[关闭]
【发布时间】:2012-08-24 19:07:54
【问题描述】:

我想使用 DOS 命令“copy *.txt NEW.txt”将单个目录中的多个 txt 文件连接在一起,以在 java 程序中形成一个新的 txt 文件。

如何将 DOS 导航到我的目录并执行命令?我很茫然。

提前致谢!

【问题讨论】:

  • 何必呢?为什么不直接用 Java 复制文件?
  • 你并没有真正使用 DOS,是吗?我认为实际上没有用于 DOS 的 JVM。
  • 使用Runtime.exec 是个坏主意,这仍然是一个合理的问题。值得不被否决。

标签: java copy dos


【解决方案1】:

你可以使用:

Runtime.getRuntime().exec("cmd /c copy *.txt NEW.txt", 
    null, new File("<yourDirectory>"));

我什至认为我不建议这样做。首先,做对是很棘手的。然后,它是特定于平台的(仅适用于 Windows)。相反,我会使用java.io.FileInputStream / java.io.FileOutputStream

【讨论】:

  • 我认为你必须执行 cmd.exe 并将复制字符串作为参数传递。正如您所建议的,使用 Java 完成这项工作要容易得多。
【解决方案2】:

调用 DOS 命令不是一个好主意。您的应用程序将极大地依赖于环境,并且更难正确检测和从 IO 错误中恢复。我建议你使用Apache Commons IO 中的IOUtils。您可以通过重复调用其copy 方法之一轻松实现所需。

如果您只需要读取连接成单个流的多个文件,也可以使用SequenceInputStream

【讨论】:

    【解决方案3】:

    创建Process 并在执行前设置其工作目录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-05
      • 1970-01-01
      • 1970-01-01
      • 2018-12-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多