gpt4 book ai didi

java - 如果 PrintWriter.print 和 PrintWriter.println 之间有区别怎么办?

转载 作者:行者123 更新时间:2023-12-01 13:31:07 27 4
gpt4 key购买 nike

我正在处理一个服务器-客户端程序集,但现在我遇到了协议(protocol)问题,因为 println 语句末尾的新行混淆了元数据。

换句话说,我需要打印到 PrintWriter,末尾不带新行。我尝试只打印,但由于某种原因,其他程序无法以这种方式获取消息。为了进行实验,我尝试在语句末尾添加“\n”、“\r”和“\n\r”,但仍然没有获取任何数据。显然 print 不能只是 print+"\n\r"否则我使用这两种方法都会得到相同的结果;唉,只有一个有效。

我检查了 Javadocs,它说 println 是“打印一个字符串,然后终止该行。”
有谁知道这两种方法之间的区别是什么,可能会导致如此截然不同的行为?

最佳答案

来自Javadoc for PrintWriter :

Unlike the PrintStream class, if automatic flushing is enabled it will be done only when one of the println, printf, or format methods is invoked, rather than whenever a newline character happens to be output. These methods use the platform's own notion of line separator rather than the newline character.

如果您使用.print(),则必须手动.flush()。仅在 String 中包含 \n\r\n 并不能做到这一点,这就是导致你看到的不同行为。

关于java - 如果 PrintWriter.print 和 PrintWriter.println 之间有区别怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21568028/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com