问题
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:
- override the platform-dependent default EOL sequence
- 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.
来源:https://stackoverflow.com/questions/10013665/set-default-line-ending-in-java