如果printwriter.print和printwriter.println之间的区别怎么办



我有一个我正在努力的服务器 - 客户端程序集,现在我对协议有问题,因为println语句结束时的新行使元数据。

换句话说,我需要在没有新线路的情况下向印刷作者打印。我只是尝试打印,但是由于某种原因,另一个程序不会以这种方式收到消息。为了实验,我尝试在语句的结尾添加" n"," r"one_answers" n r",但仍然没有任何数据。显然,打印不能只是打印 " n r",否则我会使用这两种方法获得相同的结果。las,只有一个作品。

我检查了javadocs,它说println是:"打印一个字符串然后终止行。"
有人知道这两种方法之间的区别是可能导致如此截然不同的行为吗?

来自 PrintWriter的Javadoc:

与PrintStream类不同,如果启用了自动冲洗,则只有在调用println,printf或格式方法之一时才完成,而不是每当输出newline字符时。这些方法使用平台自己的行分隔符,而不是newline字符。

如果您使用的是.print(),则必须手动.flush()。仅在String中只有nrn 就这样做,这就是导致您看到的不同行为的原因。

最新更新