gpt4 book ai didi

java - "BufferedReader.ready"与 "while(BufferedReader.readLine()!=null)"

转载 作者:行者123 更新时间:2023-11-29 08:12:45 25 4
gpt4 key购买 nike

我是java新手。我想从 java 启动的进程中读取标准输出。我在谷歌搜索中得到了以下代码:

    Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(args);
BufferedReader br = new BufferedReader(
new InputStreamReader(proc.getInputStream()));
while(br.ready()){
System.out.println(br.readLine());
}

但是,此代码不会打印进程(例如 ls)应该产生的输出(顺便说一句,我在 Linux 上,openJDK 1.6)

但是如果我将 while 循环更改为:

    String line;
while((line = br.readLine())!=null){
System.out.println(line);
}

它按预期工作。

之前的代码有什么问题?根据java api doc的说法,我认为它们是相似的。

最佳答案

在前面的循环中,您只是在就绪状态下循环,而不是从流中读取任何字节。

关于java - "BufferedReader.ready"与 "while(BufferedReader.readLine()!=null)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7081412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com