2014-04-25 138 views
-4

我想從流中獲取文本。但我沒有正確地得到它。java - 套接字流

一切正常,但我只需要知道如何讓PrintWriter進入字符串。

我試圖轉換PrintWriter與函數.ToString()但它不能正常工作,是打印不同的字符串。

的Java:

private ServerSocket Server_Socket; 

private static final int CLIENTRPORT = 5000; 

Socket socket = null; 

class Connect_To_Client implements Runnable 
{ 
    @Override 
    public void run() 
    { 
    try 
    { 
     Server_Socket = new ServerSocket(CLIENTRPORT); 
     socket = Server_Socket.accept(); 
    } 
    catch (IOException e) 
    { 
     e.printStackTrace(); 
    } 
    } 
} 

public BufferedReader input; 

public String Get_Message_From_Server() 
{ 
    PrintWriter out = null; 
    String out_string = ""; 

    try 
    { 
    input = new BufferedReader(new InputStreamReader(socket.getInputStream())); 

    System.out.println(input); 
    } 
    catch (IOException e) 
    { 
    e.printStackTrace(); 
    } 
    return(out_string);//the text - problem 
} 

回答

1

從一個緩衝閱讀器讀取做這樣的事情

BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); 
StringBuilder sb = new StringBuilder(); 
String line = reader.readLine(); 
while (line != null) { 
     sb.append(line); 
     line = reader.readLine(); 
} 
return sb.toString(); 
+1

這已經很接近,但你剝出新線字符這樣。 –

+0

這是真的,在這種情況下,在該行之後附加'\ n'字符將是一個選項。 – bestdayever