Почему операторы перенаправления из командной строки Windows создают текст, игнорирующий перенос строки?

Почему операторы перенаправления из командной строки Windows создают текст, игнорирующий перенос строки?

Я попытался вывести данные в текстовый файл с помощью операторов перенаправления > and >>из класса Java, но он игнорирует перевод строки \nиз Java, когда.текстФайл открывается с помощьюБлокнотиз Windows 10. Это интересно, потому что набыстрыйПеревод строки работает отлично, и если я его использую, System.out.println("")он работает нормально вБлокнот.

Класс с \nпереводом строки:

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


    }

}

Класс, использующий 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.");

    }

}

Выход вбыстрый:

Быстрый

Вывод в текстовом файле изкласс н(н.txt) открылся сБлокнот:

ThisShouldBeSeparated.

Вывод в текстовом файле изкласс ln(ln.txt) открылся сБлокнот:

This
Should
Be
Separated.

Эти два значения должны быть равны.

Я тестировал скласс н публичныйно это не изменило результат.

Я искал и нашел информацию о том, как сделать echoперевод строки, но это не то, что мне нужно, я хочу, чтобы перенаправленный текстовый файл работал так же, какбыстрый.

Одна интересная деталь: когда я вставляю текст изн.txtздесь (написание вопроса), вMicrosoft Word,Блокнот++илиWord Pad(или откройте файл в указанных программах) он «исправил» ошибку и был равен результату откласс ln.

РЕДАКТИРОВАТЬ

Я думаю, что это не дубликат, потому что когда я писал вопрос, я даже не думал о возможномБлокнотпроблема. Название совершенно другое, поэтому я ответил на свой собственный вопрос для людей, которые не думали, что проблема вБлокнот, как и я раньше, может получить хорошее решение.

Если я ошибаюсь, буду рад, если меня поправят.

решение1

При поиске дополнительной информации о переводе строки и текстовых файлах я нашелвопросздесь всуперпользовательсообщество, которое объяснило, что происходит.

Проблема не в этомбыстрый, этоБлокнототОкна(в моем случае Windows 10, в случае автора другого вопроса Windows 7), которые не признают этот типподача строки, цитируя @Paul, который ответил на вопрос, о котором я говорю:

Блокнот распознает только CR, LF (0x0d, 0x0a), тогда как другие источники могут использовать только CR или только LF.

Теперь я рекомендую использовать в качестве первого текстового редактораWord PadилиNotePad++которые работают нормально.

вБлокнот:

Блокнот

ВБлокнот++иWord Pad:

NotePad++ Word Pad

Другое возможное решение — скопировать текст изБлокнот, вставляя вБлокнот++,Word Pad,Microsoft Wordили любой текстовый редактор, распознающий этот тип переноса строки, а затем скопируйте его обратно.

Для получения более подробной информации перейдите к вопросу«Блокнот игнорирует переносы строк».

Связанный контент