我试图通过使用我的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);
}
}
答案 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);
}