java processbuilder redirect.append(log)

时间:2015-04-18 15:51:58

标签: java processbuilder

是否可以使用带有java进程构建器的重定向选项替换输出文件的内容?

代码:

 ProcessBuilder pb2 =
           new ProcessBuilder("/bin/sh", "-c", "cat /home/james/YCSB/bin/simulations/"+CommandGenerator.Simulation_id+".dat | sort -n");                                                                                                                                                                 
           File log2 = new File("/home/james/YCSB/bin/simulations/"+CommandGenerator.Simulation_id+".dat");
           pb2.redirectOutput(Redirect.appendTo(log2));
           pb2.redirectErrorStream(true);
           assert pb2.redirectOutput().file() == log2;

           Process p2 = pb2.start();

我希望用命令的输出替换log2的内容。我不确定这是否可行,因为进程构建器工作目录也与输出文件log2相同。

在排序中,我的流程构建器需要读取文件,对内容进行排序,然后将其写回,替换未排序的内容。目前它对内容进行排序,但是当将其写回log2文件时,它只是将输出放在文件的底部,有效地将log2的内容加倍,而不是覆盖它

0 个答案:

没有答案