我正在尝试使用 BufferedReader 来读取进程的输出。当我尝试
Process p=Runtime.getRuntime().exec("nslookup 10.123.30.130");
p.waitFor();
BufferedReader reader=new BufferedReader(new InputStreamReader(p.getInputStream()));
String line=reader.readLine();
while(line!=null)
{
System.out.println(line);
line=reader.readLine();
}
输出是
Server: <edited server details>
Address: <edited address details>
而控制台中进程的实际输出是:
Server: <details edited>
Address: <details edited>
Name: <details edited>
Address: <details edited>
(注意:出于安全原因,我编辑了实际输出)
我的观察是,在阅读了前 2 行之后,返回 null,因此流结束。有什么办法可以得到完整的四行吗?
更新:第三个空行被解释为空。但是,如果我尝试使用相同的程序, Process p=Runtime.getRuntime().exec("cmd /c dir");
即使有新行,我也会得到与控制台中完全相同的输出。