为什么while循环后的语句没有被执行?

时间:2012-05-19 16:57:50

标签: java android

问题对我来说,在循环之后什么都没有执行?这有什么问题? (while循环结束后的行永远不会被执行)

client = serverSocket.accept();
BufferedReader in = new BufferedReader(
                            new InputStreamReader(client.getInputStream())
);

while ((line = in.readLine()) != null) {
    Log.i("line",line);
    line111 +=line;
    Log.i("line111",line111);
}

//Any code below this is not executed
Log.i("shan","Shan");

2 个答案:

答案 0 :(得分:6)

你的while循环卡在等待下一行的套接字上。流的源需要在其末端关闭连接。

答案 1 :(得分:3)

此代码“while((line = in.readLine())!= null)” 仅当您从具有恒定大小的文件中读取时才会相关,最后您将到达它。 当您从套接字读取时,您正在进入阻塞状态(等待远程客户端发送数据)。

如果你想要退出循环,你需要在docket读取方法上添加可能的超时。