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()
我在玩 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()