Java的文档规定在换行时使用%n而不是\n。
根据Oracle JavaSE Number documentation。
根据Oracle JavaSE Number documentation。
一个适用于运行应用程序的平台的新行字符。您应该始终使用%n,而不是\n。
如果有的话,两者之间的显着区别是什么?
一个适用于运行应用程序的平台的新行字符。您应该始终使用%n,而不是\n。
如果有的话,两者之间的显着区别是什么?
%n
在不同平台之间是可移植的,由%n
发出的值将适合底层平台,而由\n
发出的值在所有平台上都相同。
\n
是Unix系统中正确的换行符,其他系统可能使用不同的字符来表示行尾。
Windows系统使用\r\n
,早期的MacOS系统使用\r
。
%n
时发出的字符是与平台有关的(在不同平台上会有所变化),而\n
将始终发出U+000A。现在,你可能希望你的代码依赖于特定平台,以便发出该平台的惯用换行符-但我认为说它是平台无关的是不公平的。 - Jon Skeet%n
的使用在多个平台上都是可移植的,因此从用户的角度来看,它是平台无关的。 - Abimaran Kugathasan\n
,期望它是特定于平台的换行符。奇怪的是,我从未遇到过问题或注意到这一点。这一定意味着我的工具链在复制和/或读取文件时始终足够适应,以至于我没有注意到!:--)
但我总是在Windows、Linux、各种Unix和偶尔的Mac之间移动代码。我总是不得不调整脚本文件和各种其他文件的行尾。但Java文件输出不需要...我记得...哎呀! - Charlie Reitzel%n 是格式化字符串中表示换行符(可能是 \r\n 或 \n)的特殊代码(占位符),而 \n 则是实际的符号。
您可以将 %n 视为将在结果字符串中被 \r\n 或 \n 替换的符号。