Java System.lineSeparator 方法
回车换行问题
在不同操作系统中对回车换行的定义是不一样的。
Windows 的回车换行是 2 个字符,对应的是回车+换行,写法就是我们常用的 \r\n
Unix 系统下对这个回车换行进行了简化,变成了使用 \n 来表示。
这里就出现了一个问题,对应不同的操作系统,同样的文本,如果只用 \n 的话, Windows 系统读的文本没有换行,只有回车。
JDK 1.7 之前
在 JDK 1.7 之前,如果我们要解决这个问题,我们会使用下面的代码:
System.getProperty("line.separator");
JDK 是使用属性配置文件来进行定义的。
这个方法的写法有点容易出错,毕竟是文本了,敲错字很正常。
System.lineSeparator
Java 的 System.lineSeparator 这个方法对 System.getProperty("line.separator");
进行了封装。
这个方法是在 JDK 1.7 以后才提供的,我们直接用就可以了。
如果你查看 JDK 的源代码的话。
这里非常清楚的显示了对代码的封装。
代码显示也非常清楚,这个是从版本 1.7 开始的,主要就是为了 Unix 和 Windows 回车换行问题。
如果你的 JDK 比较新,就大胆用吧。
按照目前 JDK 主流的版本是 1.8 的情况,大部分情况都不会有什么问题。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2021-08-10 Druid 加载 Kafka 流数据配置可以读取和处理的流中数据格式
2021-08-10 Druid 加载 Kafka 流数据 KafkaSupervisorIOConfig 配置信息表
2019-08-10 MessagePack Java Jackson Dataformat 在 Map 中不使用 String 为 Key 的序列化
2019-08-10 MessagePack Java Jackson Dataformat 不使用 str8 数据类型的序列化
2019-08-10 MessagePack Java Jackson 在不关闭输入流(input stream)的情况下反序列化多变量
2019-08-10 MessagePack Java Jackson 在不关闭输出流(output stream)的情况下序列化多变量
2019-08-10 MessagePack Java Jackson 序列化和反序列化 POJO 为 MessagePack 的数组类型用来与 msgpack-java:0.6 保持兼容性