style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Salto de línea de Windows a Linux o Unix

Que tal comunidad, un saludo a todos.

Verán tengo un problema y no sé cómo solucionarlo les explico, desarrolle un programa que trabaja en Winbug el cual genera un archivo de texto plano, este se procesa en Unix y el problema está en que al abrirlo en este SO los saltos de línea no los reconoce y se hace un batidillo. Ya estuve leyendo un poco en internet y encontré que para cada sistema es diferente el salto de línea pero como el programa es compilado y ejecutado en Windows siempre va a traer el: [ \r\n ], que puedo hacer para que lo cambie a: [ \n ].

Gracias.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de neko069

Me parece que con propiedades

Me parece que con propiedades de sistema puedes obtener precisamente el salto de línea apropiado al sistema operativo

String elSaltodeLinea = System.getProperty( "line.separator" );

Algo así ...

Imagen de ezamudio

line.separator

Hay una propiedad de sistema llamada line.separator que probablemente te puede servir.

O si sabes que el archivo será procesado por un programa que espera encontrar solamente \n pues entonces genera el archivo con puro \n aunque sea en windows. Eso implica NO usar println si es que es lo que estás haciendo.

Y otra opción es que el programa en *NIX (si es el que está en Java) lea las líneas (va a usar solamente \n) y a cada línea le hagas trim() para que elimine el caracter sobrante \r.

Imagen de AlexSnake

Ocupo line.separator

De hecho ocupo esa propiedad para obtener el salto de linea, pero como lo mencione compila y se ejecuta en windows entonces sale lo mismo. Le voy mas a la segunda opción que mencionas ezamudio de buscar y elminar "\r ", pero queria saber si existia otra manera de poder hacerlo.
Gracias a los 2.

Imagen de ezamudio

modificable

Puedes intentar modificar line.separator en uno de los dos. Lo malo es que es propiedad de sistema, entonces afecta toda la JVM, de modo que es mejor que lo hagas en donde solamente sea un programa que genera o lee el archivo y termina, no lo vayas a mover en donde sea una aplicación que hace otras cosas.

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">