我有InputStreamReader
(与BufferedReader
合并)。
我想在循环中阅读Stream的内容
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”参数的字符串中。
答案 0 :(得分:6)
如果它到达流的末尾,您获得的代码将
。我的猜测是,这是一个网络流,另一端没有关闭连接。这不会最终导致您无限制地进入循环广告 - 它最终只会挂在readLine
呼叫上,等待另一端关闭流,或者更多数据到到达。
你需要 有一些检测你已经完成的方法(例如终止线/连接关闭)或知道要提前读取多少行