2014-04-25 101 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