PrintWriter print 与 println

Dan*_*iel 4 java sockets printing printwriter

使用时,我有一个服务器正在等待消息,而一个客户端正在向他发送消息

    PrintWriter out = new PrintWriter(lpSocket.getOutputStream(), true);
    String msg;
    BufferedReader userIn = new BufferedReader(new InputStreamReader(System.in));
    while ((msg = userIn.readLine()) != null)
        out.print(msg + (char) 10);
Run Code Online (Sandbox Code Playgroud)

什么也没发生,这意味着服务器只是继续等待永远不会到达的消息。当我将其更改out.printout.println有效时。

我想知道为什么

Con*_*Del 5

默认情况下,PrintWriter调用flushin println,而在 中则不执行此操作print。您可以通过在通话out.flush()后添加来解决此问题out.print