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

0

Eu tentei enviar 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 arquivo .txt é aberto com o Notepad do windows 10. É interessante porque no prompt o feed de linha funciona bem e se eu usar System.out.println("") ele funciona normalmente no Notepad .

Classe com \n feed 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 no prompt :

Saídanoarquivodetextodaclassen(n.txt)abertacomBlocodenotas:

ThisShouldBeSeparated.

Saídanoarquivodetextodaclasseln(ln.txt)abertacomBlocodenotas:

ThisShouldBeSeparated.

Estesdoisacimadevemseriguais.

Eutesteicomaclassenpúblicamasissonãoalterouoresultado.

Eupesquiseiedescobricomoechoumfeeddelinha,nãoéissoqueeuquero,queroqueoarquivodetextoredirecionadofuncionecomooprompt.

Umdetalheinteressanteéquandoeucolootextoden.txtaqui(escrevendoumapergunta),noMicrosoftWord,Notepad++ouWordPad(ouabraoarquivonosprogramascitados)ele"corrigiu" o erro e foi igual ao resultado da classe ln .

EDITAR

Eu acho que não é uma duplicata porque quando eu escrevi a pergunta eu nem sequer pensei sobre o possível problema do Notepad . O título é completamente diferente, então eu respondi a minha própria pergunta para pessoas que não acham que o problema é o Bloco de Notas , como eu antes, pode ter uma boa solução.

Se eu estiver errado, ficarei feliz em ser corrigido.

    
por Lucas Souza 20.05.2016 / 19:25

1 resposta

0

Enquanto pesquisava mais sobre feed de linha e arquivos de texto, encontrei uma pergunta aqui no comunidade superusuário que explicou o que está acontecendo.

O problema não é de prompt , é o Bloco de Notas do Windows ( no meu caso Windows 10, no caso de o autor da outra questão, o Windows 7 ), que não reconhece esse tipo de feed de linha , citando @Paul que respondeu à pergunta que estou falando:

Notepad only recognises CR, LF (0x0d, 0x0a), whereas other sources might use CR only, or LF only.

Agora eu recomendo usar como primeiro editor de texto o WordPad ou o NotePad ++ que funcionam normalmente.

No Bloco de notas :

EmNotepad++eWordPad:

OutrasoluçãopossívelécopiarotextodoBlocodeNotas,colandonoNotepad++,WordPad,MicrosoftWordouqualquereditordetextoquereconheçaestetipodequebradelinhaequeocopiedevolta.

Paraobtermaisinformações,consultea "Bloco de notas ignorando quebras de linha" .

    
por 20.05.2016 / 19:25