¿Por qué los operadores de redirección desde Windows solicitan crear texto ignorando el salto de línea? [duplicar]

0

Esta pregunta ya tiene una respuesta aquí:

Traté de enviar a un archivo de texto usando operadores de redireccionamiento > and >>de una clase de Java, pero ignora el avance de línea \nde Java cuando el archivo .txt se abre con el Bloc de notas desde Windows 10. Es interesante porque en el aviso el avance de línea funciona bien y si Lo uso System.out.println("")funciona normalmente en el Bloc de notas .

Clase con \navance de línea:

class n{

    public static void main(String[] args){

        System.out.print("This\n");
        System.out.print("Should\n");
        System.out.print("Be\n");
        System.out.print("Separated.\n");


    }

}

Clase usando System.out.println(""):

class ln{

    public static void main(String[] args){

        System.out.println("This");
        System.out.println("Should");
        System.out.println("Be");
        System.out.println("Separated.");

    }

}

Salida en el indicador :

Rápido

Salida en archivo de texto de la clase n ( n.txt ) abierta con el Bloc de notas :

ThisShouldBeSeparated.

Salida en archivo de texto de la clase ln ( ln.txt ) abierta con el Bloc de notas :

This
Should
Be
Separated.

Estos dos anteriores deberían ser iguales.

Probé con la clase n pública pero no cambió el resultado.

He buscado y encontrado cómo hacer echoun avance de línea, eso no es lo que quiero, quiero que el archivo de texto redirigido funcione como el indicador .

Un detalle interesante es cuando pego el texto de n.txt aquí ( escribiendo una pregunta ), en Microsoft Word , Notepad ++ o WordPad ( o abro el archivo en los programas citados ) "solucionó" el error y fue igual al resultado de la clase ln .

EDITAR

Creo que no es un duplicado porque cuando escribí la pregunta ni siquiera pensé en el posible problema del Bloc de notas . El título es completamente diferente, así que respondí mi propia pregunta para las personas que no pensaban que el problema es que el Bloc de notas , como yo antes, puede obtener una buena solución.

Si me equivoco, estaría feliz de ser corregido.

Lucas Souza
fuente
Publiqué las preguntas y respuestas a pesar de que descubrí la solución mientras escribía la pregunta porque al principio ni siquiera escribí que estaba usando el Bloc de notas porque estaba seguro de que el problema estaba en el aviso . Así que creo que otros pueden tener los mismos problemas y dificultades para encontrar la solución a esto.
Lucas Souza
Las preguntas sobre los problemas de programación de Java están fuera de tema para SU, y el problema de "mi archivo de texto no muestra saltos de línea en el Bloc de notas" ya se ha cubierto (como ha señalado). Votación para cerrar.
Ƭᴇcʜιᴇ007
@ Ƭᴇcʜιᴇ007 Mantengo las preguntas y respuestas porque no estaba pensando en el posible problema en el Bloc de notas y creo que otras personas podrían pensar que el problema está en el mensaje y no en el Bloc de notas como yo antes. Si esto no es suficiente para diferenciar esta pregunta en el " Bloc de notas que ignora los saltos de línea", me complacerá eliminarlo.
Lucas Souza
1
Tienes razón, las preguntas duplicadas con suficiente diferencia en la redacción pueden ser útiles para señalar a las personas al lugar correcto. Por lo tanto, esta pregunta debe conservarse, pero dejarse marcada como duplicada.
Ben N

Respuestas:

0

Mientras buscaba más sobre el avance de línea y los archivos de texto, encontré una pregunta aquí en la comunidad de superusuarios que explicaba lo que está sucediendo.

El problema no es rápido , es el Bloc de notas de Windows ( en mi caso Windows 10, en el caso del autor de la otra pregunta Windows 7 ) que no reconoce este tipo de avance de línea , citando a @Paul que respondió la pregunta Estoy hablando de:

El Bloc de notas solo reconoce CR, LF (0x0d, 0x0a), mientras que otras fuentes pueden usar solo CR o LF.

Ahora recomiendo usar como primer editor de texto el WordPad o NotePad ++ que funcionan normalmente.

En el Bloc de notas :

Bloc

En Notepad ++ y WordPad :

NotePad ++ WordPad

Otra posible solución es copiar el texto del Bloc de notas , pegarlo en el Bloc de notas ++ , WordPad , Microsoft Word o cualquier editor de texto que reconozca este tipo de salto de línea, y luego volver a copiarlo.

Para obtener más información, vaya a la pregunta "Bloc de notas que ignora los saltos de línea" .

Lucas Souza
fuente
En realidad, el problema es que estás generando saltos de línea incorrectos. El programa genera saltos de línea de Unix (solo un "salto de línea" / carácter LF, código ASCII 10, "\ n" en Java) mientras que DOS y Windows usan CR / LF (dos caracteres, un "retorno de carro", código ASCII 13, secuencia de escape "\ r" y un carácter LF). Consulte la siguiente pregunta para aprender a usar los caracteres correctos de nueva línea para su sistema operativo: stackoverflow.com/questions/207947/…
Gunter Ohrner