我想通过使用while循环从java中读取BufferedReader中的行。它会像应该那样遍历BufferedReader,但是当它从循环中断开时,它会'冻结'代码的执行。我试过调试代码,但执行提示在循环后丢失。不知道我做错了什么:当从BufferedReader中提取行时,无法在Java中循环while循环
代码片段:
BufferedReader reader = new BufferedReader(new InputStreamReader(yourSocket.getInputStream()));
String nextLine = null;
nextLine = reader.readLine();
while (nextLine != null){ //print all of input stream
System.out.println(nextLine);
nextLine = reader.readLine();
}
我认为在没有线留在BufferedReader中的nextLine变量将返回null并打破循环。我试过手动打破循环,但它似乎并没有工作。同样,代码会打印BufferedReader的行,但是while循环后面的任何代码都不一定会运行。
如果这个信息不够,请让我知道。如有必要,我也可以通过完整的代码。
谢谢, 专利
你从哪里得到读者? – bmargulies 2011-05-13 00:38:11
什么协议通过套接字交换?套接字的服务器端是否关闭了它的流? – laz 2011-05-13 00:42:41
你的套接字是一个套接字。我试图从另一个论坛复制代码,因为我试图处理HTTP请求。我将假定套接字不关闭流。问题在于,通过关闭流,我失去了BufferedReader的读取功能。 – Prusprus 2011-05-13 00:55:59