2015-08-25 68 views
1

我有一个简单的客户端/服务器程序,用于发送和接收从客户端到服务器的字符串,反之亦然。 一些字符串包含换行符"n\”,如"ERR\nASCII: OK"读取字符串缓冲读取器的所有行

我缓冲的读者:

BufferedReader in = 
       new BufferedReader(
        new InputStreamReader(ConverterSocket.getInputStream())); 

我想显示的字符串给用户/客户端中的每一行

我曾尝试以下for循环:

for (line = in.readLine(); line != null; line = in.readLine()){ 
        System.out.println(line); 
       } 

输出(如预期):

ERR 
ASCII: OK 

但循环不结束。我也尝试过:

while ((line = in.readLine()) != null){ 
     system.out.println(line) 
    } 

这也不能正常结束。 如何打印字符串中的所有行?

+0

读取循环等待下一条消息。如果行尾不是消息的结尾,则应该设计一个协议,以便读取循环知道何时停止。 – RealSkeptic

回答

3

readLine()方法在流结束时返回null,直到对等关闭连接才发生。