设置以Java结尾的默认行

设置以Java结尾的默认行,java,newline,eol,lf,Java,Newline,Eol,Lf,我在多平台环境(Windows+Linux)中使用Java。但是,无论我们生成什么文本文件,都应该使用LF作为其EOL序列 有没有一种方法可以强迫Java在运行程序的平台上使用这个EOL序列?我不想改变整个程序,也就是说,对System.out.println和类似程序的所有调用都应该保持原样,只有函数末尾的*ln应该始终输出“0x0A”,而不是“0x0D 0x0A” 我可以想出两种不同的方法,但我不知道其中一种是否可行: 覆盖平台相关的默认下线序列 让Java相信我正在运行Linux,即使我在

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

有没有一种方法可以强迫Java在运行程序的平台上使用这个EOL序列?我不想改变整个程序,也就是说,对System.out.println和类似程序的所有调用都应该保持原样,只有函数末尾的*ln应该始终输出“0x0A”,而不是“0x0D 0x0A”

我可以想出两种不同的方法,但我不知道其中一种是否可行:

  • 覆盖平台相关的默认下线序列
  • 让Java相信我正在运行Linux,即使我在DOS命令行上运行我的程序

  • 这有可能吗?或者其他什么?

    您可以尝试设置相应的系统属性,如
    system.setProperty(“line.separator”,“您需要的东西”)(也可以通过JVM的命令行参数实现)

    或者,您可以在需要的地方使用
    print
    插入的
    println
    和打印换行字符(
    “\r”
    ,“\n”或它们的组合)。

    查看并查看。如果将它们放在一起,您将发现
    System.setProperty(“line.separator”,“\n”)可以解决您的问题


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

    这没有帮助。你改变了属性,但没有改变行为。它只是不会对属性变化做出反应。实验验证。与其他系统属性相同,如java.class.path。命令行是您唯一的选项(或某些代码运行时修改)。