我想执行以下命令并将输出写入文本文件,
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
不是在日志文件中写入输出,而是在命令提示符下打印。
如果我对另一个命令使用相同的代码,则它正在写入文本文件。对于此命令,输出未写入。
答案 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