Set default line ending in Java

2019-04-09 03:10发布

问题:

I'm working with Java in a multi-platform environment (Windows + Linux). Whatever text files we produce, however, should use LF as their EOL sequence.

Is there a way I can force Java to use this EOL sequence regardless on the platform I'm running a program on? I'd like not to have to change the whole program, i.e. all calls to System.out.println and similar should be kept as is, only the *ln at the end of the function should always output an "0x0A" and never "0x0D 0x0A".

I could think of two different ways of doing that, but I don't know if either one is possible:

  1. override the platform-dependent default EOL sequence
  2. make Java believe I'm running Linux even when I run my program on the DOS command line

Is any of this possible? Or something else perhaps?

回答1:

You can try setting the corresponding system property like System.setProperty("line.separator", "something you need"); (It can also be achieved throug command-line parameters to JVM)

Or, maybe, you can use print insetad of println and print line-breaking characters ("\r", "\n" or their combination) where you need it.



回答2:

Have a look at this and this. If you put those together, you'll find out that System.setProperty("line.separator", "\n"); may solve your problem.

Haven't tested it though, that's why I added the links, so you can check for yourself.