我有一个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
调用,等待另一端关闭流,或为更多的数据到达。
你需要有一些方法来检测你已经完成了(例如一个终止行/连接关闭)或知道有多少行提前读取