6

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?

Elrond_EGLDer
  • 47,430
  • 25
  • 189
  • 180
user1313142
  • 61
  • 1
  • 3

2 Answers2

2

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.

max.shmidov
  • 131
  • 4
1

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.

gleerman
  • 1,711
  • 4
  • 24
  • 35
  • 2
    This does not help. You change the property but not behaviour. It just dos not react on property change. Experimentally verified. Same with other system properties, like java.class.path. Command line is your only option (or some code run time modification). – Espinosa Jun 27 '13 at 13:18