2012-04-04 6 views
5

Estoy trabajando con Java en un entorno multiplataforma (Windows + Linux). Sin embargo, cualquier archivo de texto que produzcamos debería usar LF como su secuencia EOL.Establecer la línea predeterminada que termina en Java

¿Hay alguna manera de forzar a Java a usar esta secuencia de EOL independientemente de la plataforma en la que ejecute un programa? Me gustaría no tener que cambiar todo el programa, es decir, todas las llamadas a System.out.println y similares deben mantenerse como están, solo el * ln al final de la función siempre debe generar un "0x0A" y nunca " 0x0D 0x0A ".

que podría pensar en dos formas diferentes de hacer eso, pero no sé si cualquiera de ellos es posible:

  1. anulación de la secuencia de EOL predeterminado dependiente de la plataforma
  2. hacer creer que estoy de Java ejecutando Linux incluso cuando ejecuto mi programa en la línea de comandos de DOS

¿Es esto posible? ¿O algo más tal vez?

+1

http://stackoverflow.com/questions/6128174/how-do-i-force-windows-line-endings-in-java-app – kevingallagher

Respuesta

2

Puede intentar establecer la propiedad del sistema correspondiente como System.setProperty("line.separator", "something you need"); (También se puede lograr throug parámetros de línea de comandos a JVM)

O, tal vez, se pueden utilizar print insetad de caracteres de línea de ruptura println e imprimir ("\r", "\ n" o su combinación) donde lo necesite.

1

Eche un vistazo a this y this. Si los une, descubrirá que System.setProperty("line.separator", "\n"); puede resolver su problema.

No lo he probado, es por eso que agregué los enlaces para que pueda verificarlo usted mismo.

+2

Esto no ayuda. Cambias la propiedad pero no el comportamiento. Simplemente no reacciona al cambio de propiedad. Experimentalmente verificado Lo mismo con otras propiedades del sistema, como java.class.path. La línea de comando es su única opción (o alguna modificación del tiempo de ejecución del código). – Espinosa

Cuestiones relacionadas