process.waitfor()和BufferReader没有在控制台中写入完整文件

时间:2017-09-10 07:09:15

标签: java process

Process process = Runtime.getRuntime().exec(propertiesMap.get("PmdBatFile"));
BufferedReader reader =
                    new BufferedReader(new InputStreamReader(process.getInputStream()));
String s ;
while ((s = reader.readLine()) != null) {
     System.out.println(s);
}
process.waitFor();

此处进程停止并且jvm类型在输出中写入大约13,000行后进入死锁状态,文件大小显示为3 MB,因为它应该写入几乎任何超过1的位置,文件中的行数超过500 MB的文件。

通过bufferReader写入的内容是否有限制?

1 个答案:

答案 0 :(得分:-1)

这很好用。

ProcessBuilder processBuilder = new     ProcessBuilder(propertiesMap.get("PmdBatFile"));
File log = new File(propertiesMap.get("JenkinsLogs")+"\\"+"\JenkinsLog"+"_"+dateFormat.format(date)+".txt");
processBuilder.redirectErrorStream(true);
             processBuilder.redirectOutput(ProcessBuilder.Redirect.appendTo(log));
Process process = processBuilder.start();
process.waitFor();
System.out.println("Done");