2015-08-25 73 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,直到對等關閉連接才發生。