如何将一个文件合并到另一个\ Linux

时间:2016-09-11 15:10:51

标签: java linux cat

我试图通过使用我的Java程序中的linux命令将一个文本文件附加到另一个文本文件。我是Linux新手。我尝试排序,它工作得很好,所以我不知道我使用'猫'做错了什么。 能否请您查看我的代码并帮我弄清楚我做错了什么。

public static void mergeRecords(String fileName, String overflowFileName)
{
    String command = "cat " + overflowFileName + " >> " + fileName;
    try {
        Process r = Runtime.getRuntime().exec(command);
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}

2 个答案:

答案 0 :(得分:4)

Runtime#exec 不是shell

这是一种非常常见的误解。你需要做的是:

  • 使用Process
  • 命令创建cat file1 file2
  • 获取该流程的输出
  • 将输出转储到文件中。

提示:使用ProcessBuilder,这将使您的工作更轻松。

答案 1 :(得分:1)

正如其他人所指出的,你不应该使用外部命令来做一些Java可以轻松做的事情:

try (OutputStream existingFile = Files.newOutputStream(
    Paths.get(fileName),
    StandardOpenOption.WRITE,
    StandardOpenOption.APPEND)) {

    Files.copy(Paths.get(overflowFileName), existingFile);
}