设置以Java结尾的默认行

我在多平台环境(Windows + Linux)中使用Java。 但是,无论我们生成什么文本文件,都应使用LF作为其EOL序列。

有没有办法可以强制Java使用这个EOL序列,无论我在运行程序的平台上怎么办? 我不想改变整个程序,即所有对System.out.println和类似程序的调用应保持原样,只有函数末尾的* ln应该总是输出“0x0A”并且永远不会“ 0x0D 0x0A“。

我可以想到两种不同的方法,但我不知道是否有可能:

  1. 覆盖与平台相关的默认EOL序列
  2. 让Java相信即使我在DOS命令行上运行程序,我也在运行Linux

这有可能吗? 还是其他什么呢?

您可以尝试设置相应的系统属性,如System.setProperty("line.separator", "something you need"); (它也可以通过命令行参数实现到JVM)

或者,也许您可​​以使用println print insetad并在需要的地方打印换行符( "\r" ,“\ n”或它们的组合)。

看看这个和这个 。 如果你把它们放在一起,你会发现System.setProperty("line.separator", "\n"); 可以解决你的问题。

虽然没有测试过,这就是我添加链接的原因,所以你可以自己检查一下。