Por que os operadores de redirecionamento do prompt do Windows criam texto ignorando a quebra de linha?

Por que os operadores de redirecionamento do prompt do Windows criam texto ignorando a quebra de linha?

Tentei gerar a saída para um arquivo de texto usando operadores de redirecionamento > and >>de uma classe java, mas ele ignora o feed de linha \nde java quando o.TXTarquivo é aberto com oBloco de anotaçõesdo Windows 10. É interessante porque noincitaro feed de linha funciona bem e se eu usar System.out.println("")funciona normalmente noBloco de anotações.

Classe com \nalimentação de linha:

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");


    }

}

Classe 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.");

    }

}

Saída noincitar:

Incitar

Saída em arquivo de texto declasse f(n.txt) aberto comBloco de anotações:

ThisShouldBeSeparated.

Saída em arquivo de texto declasse ln(ln.txt) aberto comBloco de anotações:

This
Should
Be
Separated.

Esses dois acima devem ser iguais.

Eu testei com oclasse f públicomas isso não mudou o resultado.

Eu pesquisei e descobri como fazer echoum feed de linha, não é isso que eu quero, quero que o arquivo de texto redirecionado funcione como oincitar.

Um detalhe interessante é quando colo o texto don.txtaqui (escrevendo uma pergunta), noMicrosoft Word,Bloco de notas++ouPrancheta(ou abra o arquivo nos programas citados) "consertou" o erro e foi igual ao resultado declasse ln.

EDITAR

Acho que não é duplicado porque quando escrevi a pergunta nem pensei no possívelBloco de anotaçõesproblema. O título é completamente diferente, então respondi minha própria pergunta para pessoas que não achavam que o problema era oBloco de anotações, como eu antes, pode conseguir uma boa solução.

Se eu estiver errado, ficarei feliz em ser corrigido.

Responder1

Ao pesquisar mais sobre feed de linha e arquivos de texto, encontrei umperguntaaqui nosuperusuáriocomunidade que explicou o que está acontecendo.

O problema não é deincitar, é oBloco de anotaçõesdejanelas(no meu caso Windows 10, no caso do autor da outra pergunta Windows 7) que não reconhecem esse tipo dealimentação de linha, citando @Paul que respondeu à pergunta de que estou falando:

O bloco de notas reconhece apenas CR, LF (0x0d, 0x0a), enquanto outras fontes podem usar apenas CR ou apenas LF.

Agora recomendo usar como primeiro editor de texto oPranchetaouBloco de notas++que funcionam normalmente.

NoBloco de anotações:

Bloco de anotações

EmBloco de notas++ePrancheta:

Bloco de notas++ Prancheta

Outra solução possível é copiar o texto doBloco de anotações, colando noBloco de notas++,Prancheta,Microsoft Wordou qualquer editor de texto que reconheça esse tipo de quebra de linha e copie-o de volta.

Para mais informações acesse a pergunta"Bloco de notas ignorando quebras de linha".

informação relacionada