gpt4 book ai didi

java - 如何正确地将新行写入不同的流

转载 作者:行者123 更新时间:2023-12-02 08:47:10 24 4
gpt4 key购买 nike

我有一个 OutputStream 集合(有些是 socket.getOutputStream ,有些是 FileOutputStream ——只要可以,这些都是可以改变的仍然输出到套接字和文件,并且可以在同一个集合中。

写一行的时候,我写 - foreach outputStream:

line = "\n" + line + "\n";

out.write(line.getBytes(StandardCharsets.UTF_8));
out.flush();

该文件看起来不错,但套接字流(通过 telnet 同时打开多个流)最终看起来像这样(有 2 个套接字的示例): enter image description here

最佳答案

问题不在于你向流中写入了什么内容,而在于读者如何解释它。例如,在 Linux 上,换行符 \n 被解释为“转到下一行的开头”。在 Windows/DOS 上,它仅被解释为“转到下一行”。您还需要 \r(回车)字符来指示您要转到行的开头。

即使在同一系统上,不同的程序也可能对事物进行不同的解释。例如,某些文本编辑器具有开关来指示是使用 Windows 还是 Unix 样式换行符。

因此,根据读取流的代码,您可能无法获得一致的行为。除非您让所有读者都同意使用哪些字符“转到下一行的开头”。

关于java - 如何正确地将新行写入不同的流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61005323/

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