我有一个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"参数的字符串中.
如果到达流的末尾,您获得的代码将起作用.
我的猜测是这是一个网络流,另一端没有关闭连接.这不会最终导致您无限制地进入循环广告 - 它最终只会挂在readLine呼叫上,等待另一端关闭流,或者更多数据到达.
您需要要么具有检测你完成某种方式(如终止线/连接关闭)或知道有多少行预读的时间.
| 归档时间: |
|
| 查看次数: |
364 次 |
| 最近记录: |