PrintWriter print与println的区别

4

我有一个服务器等待接收消息和一个客户端向其发送消息,当使用

    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);

什么都没有发生,意思是服务器一直在等待一个永远不会到达的消息。当我将out.print更改为out.println时,它可以正常工作。

我想知道原因。


1
数据缓冲/刷新。 - Kayaman
1
使用 '\n' 要比 (char) 10 更易读。 - Andy Turner
1个回答

5

默认情况下,PrintWriterprintln 中会调用 flush 方法,但在 print 中不会这样做。您可以通过在 out.print 调用之后添加 out.flush() 来解决此问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接