我正在开发一个eclipse rcp产品,我需要从一个目录运行一个命令,需要将输出保存在另一个目录中。
命令的输出是一个文件。
我不知道怎么做。
我的代码就像这样无法正常工作。
Runtime r = Runtime.getRuntime();
Process p = r.exec(("CMD /C cd D:\\dir1\\bin" + " && " + command),
null, new File("D:\\Data\\test"));
所以,命令需要从dir1 / bin运行,并且该命令的输出是一个应保存在data / test中的文件。
但是从上面的代码中,输出(即生成的文件)保存在dir1 / bin中,这是不期望的。
答案 0 :(得分:0)
echo This is a command > output.txt
尝试添加' > output.txt的强>'到命令的末尾将其插入文件
答案 1 :(得分:0)
您可以将进程对象(p.getInputStream())和FileOutputStream给出的InputStream用于文件。 创建一个带有无限循环的新线程,读取其中的字符并将它们写入文件。
Process p = ....
InputStream is = p.getInputStream();
FileOutputStream fos = new FileOutputStream(new File("output.txt"));
new Thread(new Runnable() {
public void run() {
while (true) {
char c = (char)is.read();
if (c > -1) {
fos.write(c);
} else {
return;
}
}
}
}).start();
我没有测试代码但它应该可以工作。