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



我有一个InputStreamReader(它与BufferedReader结合)。

我想在循环中读取流的内容

while((line = MyStream.readLine()) != null) {
    s.o.p(line);
    String lastline; 
}

但是这会创建一个没有结束的循环,所以我的整个程序都在等待循环结束。然后等待……和等待。

现在,我有一个方法,你可以说应该读取多少行。这可以正常工作,但是非常不灵活。

我现在的方法

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

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

如果到达流的末尾,您得到的代码将会工作

我猜这是一个网络流,另一端没有关闭连接。这不会结束你进入循环无限-它会结束你只是挂在readLine调用,等待另一端关闭流,或为更多的数据到达。

你需要有一些方法来检测你已经完成了(例如一个终止行/连接关闭)知道有多少行提前读取

相关内容

  • 没有找到相关文章

最新更新