我想创建两个文件的差异。我尝试在 Java 中搜索执行此操作的代码,但没有为此找到任何简单的代码/实用程序代码。因此,我想如果我能以某种方式从我的 java 代码运行 linux diff/sdiff 命令并让它返回一个存储差异的文件,那就太好了。
假设有两个文件 fileA 和 fileB。我应该能够通过我的 java 代码将它们的差异存储在一个名为 fileDiff 的文件中。然后从 fileDiff 中获取数据就没什么大不了的了。
原文由 chitresh 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用
java.lang.Runtime.exec
来运行简单的代码。这会给你一个Process
并且你可以直接读取它的标准输出而不必暂时将输出存储在磁盘上。例如,这是一个完整的程序,将展示如何做到这一点:
编译运行后输出:
正如预期的那样。
您还可以获取流程标准错误的 错误流,以及流程标准输入的 输出流,这很容易混淆。在这种情况下,输入和输出是相反的,因为它是 从 流程到这个流程的输入(即流程的标准 _输出_)。
如果您想合并来自 Java 的过程标准输出和错误(而不是在实际命令中使用
2>&1
),您应该查看ProcessBuilder
。