java - PrintWriter 打印与 println

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

没有任何反应,这意味着服务器一直在等待一条永远不会到达的消息。当我将 out.print 更改为 out.println 时,它起作用了。

我想知道为什么

最佳答案

默认情况下,PrintWriterprintln 中调用 flush,而在 print 中它不这样做。您可以通过在 out.print 调用

之后添加 out.flush() 来解决此问题

关于java - PrintWriter 打印与 println,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34682267/

相关文章:

java - JDBC - 如何获取列名(不是原始列名)

java如何同步一组方法

macos - 在 Mac 上使用 Python 打印到 USB 打印机

c - 设置接收和发送缓冲区的套接字缓冲区大小

javascript - 从 javascript 打印变量

Java:使用 Desktop.print 打印 MS Access 数据库

java - 如何将应用程序使用情况和错误报告发送到 Google 文档?

java - 如何将 Spring 状态机用于 Order 对象

python - 通过 TCP 套接字 python 发送一个字节

java - 即使使用flush(),我的程序也被卡在/阻塞在 “in.readObject()”中