【问题标题】:java - Socket Streamjava - 套接字流
【发布时间】:2014-06-11 17:49:08
【问题描述】:

我想从流中获取文本。但我没有正确理解。

一切正常,但我只需要知道如何将 PrintWriter 转换为字符串。

我试图用函数 .ToString() 转换 PrintWriter 但它不能正常工作,是打印不同的字符串。

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
 }

【问题讨论】:

    标签: java android eclipse sockets network-programming


    【解决方案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();
    

    【讨论】:

    • 这很接近,但是您正在以这种方式剥离新行字符。
    • 这是真的,在这种情况下,可以选择在行后附加一个 '\n' 字符。
    猜你喜欢
    • 2013-05-21
    • 1970-01-01
    • 1970-01-01
    • 2013-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多