
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 \n
de 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 \n
alimentaçã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:
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 echo
um 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:
EmBloco de notas++ePrancheta:
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".