Java outputStream“\n”在 cmd 上没有按预期工作

Java outputStream "\n" not working as expected on cmd

我在玩 serverSocket,我发现当在 cmd 中连接并尝试使用“\n”在下一行显示输出时,下一个字符串不是从行的开头开始:

for (int i = 0; i <10; i++) {
    outputStream.write(("Time is " + new Date() + "\n").getBytes());
    Thread.sleep(1000);
}

命令输出:

信息

与其他以 "\n" 作为换行符的操作系统不同,Windows 具有 "\r\n"。 (还要注意命令行是缓冲的。)

  • "\r" = CR = 回车 Return = 转到行首
  • "\n" = LF = 换行 = 转到下一行

这是经典的打字机控件“API”。

(托架是轨道上的一个小托架,带有(通常 V-form)用于打印字母的开口。向右的手柄首先将托架移动到左侧,进一步按下会使卷筒向上移动2 half-lines.)

我没想到会在 Windows/CMD.exe.

中看到它仍然存在

平台独立将使用

System.lineSeparator().getBytes()