我正在尝试在java程序中运行fff.exe - fff.exe算法:
$ run fff.exe ggg.txt 12345
while ggg has lines
line = ggg.getline
if line contains 12345:
print.to.stdout( line )
- fff.exe逐行读取ggg.txt,输出ggg.txt中的一行子集;
- fff.exe的输出由循环生成;
---即。一次一行
---即。没有一次全部生成
- fff.exe的输出太大而无法保存在内存中
当我在main中运行以下代码时,输出为:
made it here
Done
,目标文件为空; 我做错了什么? hhh.csv应该是fff.exe的输出。
同样,我是否正确使用了ProcessBuilder?我的意思是运行带有参数ggg.txt 12345的fff.exe输出到名为hhh.csv的文件。
ProcessBuilder pb = new ProcessBuilder(
"M:\\aaa\\bbb\\ccc\\ddd\\workspace\\fff.exe",
"M:\\aaa\\bbb\\ccc\\ddd\\eee\\ggg.txt",
"12345" );
try {
System.out.println( "made it here!" );
File destination = new File( "M:\\aaa\\bbb\\ccc\\ddd\\eee\\hhh.csv" );
pb.redirectOutput( ProcessBuilder.Redirect.to( destination ) );
Process p = pb.start();
p.waitFor();
}
catch ( Exception e ) {
System.out.println( e );
}
System.out.println( "Done" );