将命令行输出写入文本文件

时间:2018-09-27 04:57:14

标签: java

我想执行以下命令并将输出写入文本文件,

sdcli unittest -imp -repo TEST_DB -file D:\UnitTestCase\UTF_AMS_CALCULS_4.xml

我使用了以下代码,

FileWriter writer= new FileWriter("D:\\output.txt", true);
Process process = Runtime.getRuntime().exec"CMD", "/C", + sdcli unittest -imp -repo TEST_DB -file D:\UnitTestCase\UTF_AMS_CALCULS_4.xml);

BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));

String line = null;
while ((line = reader.readLine()) != null) {
       writer.write(line + "\n");
}
writer.close();
reader.close();

但是它不起作用。

我也手动尝试过

sdcli unittest -imp -repo TEST_DB -file D:\UnitTestCase\\UTF_AMS_CALCULS_4.xml > D:\output.txt

不是在日志文件中写入输出,而是在命令提示符下打印。

如果我对另一个命令使用相同的代码,则它正在写入文本文件。对于此命令,输出未写入。

2 个答案:

答案 0 :(得分:0)

您可以使用System.setOut来重新分配“标准”输出流。点击here了解更多信息。

System.setOut(new PrintStream(new File("A.txt")));

编辑:我了解到stdout重定向不起作用,您可以尝试错误重定向 2>,如图here对于Windows

答案 1 :(得分:0)

它将所有输出重定向到一个名为file.txt的txt文件中。 Win,Mac OS,Linux都一样。
“ Hello”世界可以用任何命令替换。

$ echo "hello" >> /home/user/usr/Desktop/file.txt

相关问题