如果没有更多行,则InputStreamReader应该结束

ABL*_*BLX 0 java stream

我有一个InputStreamReader(与a结合BufferedReader).

我想循环阅读Stream的内容

while((line = MyStream.readLine()) != null) {
    s.o.p(line);
    String lastline; 
}
Run Code Online (Sandbox Code Playgroud)

但这会创建一个没有结束的循环,所以我的整个程序等待循环结束..然后等待...等待.

目前,我有一种方法可以说明应该读取多少行.这很好,但非常不灵活.

我此刻的方法

public void getStatus(int times) throws IOException {
    for (int i = 0; i < times; i++) {
        System.out.println(fromServer.readLine());
    }
Run Code Online (Sandbox Code Playgroud)

我希望这个方法读取所有行并将最后一行保存在不带"times"参数的字符串中.

Jon*_*eet 6

如果到达流的末尾,您获得的代码将起作用.

我的猜测是这是一个网络流,另一端没有关闭连接.这不会最终导致您无限制地进入循环广告 - 它最终只会挂在readLine呼叫上,等待另一端关闭流,或者更多数据到达.

您需要要么具有检测你完成某种方式(如终止线/连接关闭)知道有多少行预读的时间.