我在多平台环境(Windows+Linux)中使用Java。然而,无论我们生成什么文本文件,都应该使用LF作为它们的EOL序列。
有没有一种方法可以强制Java使用这个EOL序列,而不管我在哪个平台上运行程序?我不想更改整个程序,即对System.out.println和类似函数的所有调用都应该保持原样,只有函数末尾的*ln应该始终输出"0x0A",而不是"0x0D 0x0A"。
我可以想出两种不同的方法来做到这一点,但我不知道哪一种是否可行:
- 覆盖依赖于平台的默认EOL序列
- 即使我在DOS命令行上运行程序,也要让Java相信我在运行Linux
这些可能吗?或者其他什么?
您可以尝试设置相应的系统属性,如System.setProperty("line.separator", "something you need");
(也可以通过JVM的命令行参数来实现)
或者,您可以使用println
的print
insetad,并在需要的地方打印换行字符("r"
、"\n"或它们的组合)。
看看这个和这个。如果你把这些放在一起,你会发现System.setProperty("line.separator", "n");
可能会解决你的问题。
虽然还没有测试过,这就是我添加链接的原因,所以你可以自己检查。