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

Я пытался вывести в текстовый файл с помощью операторов перенаправления > and >> из Java-класса, но он игнорирует перевод строки \n из Java, когда .txt файл открывается с помощью блокнота из 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.");

    }

}

Вывод в подсказке:

Вывод в текстовом файле из класса n (n.txt), открытого с помощью Блокнота:

ThisShouldBeSeparated.

Вывод в текстовом файле из класса ln (ln.txt), открытого с помощью Блокнота:

This
Should
Be
Separated.

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

Я протестировал общедоступный класс n, но результат не изменился.

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

Одна интересная деталь заключается в том, что когда я вставляю текст из n.txt сюда (написание вопроса), в Microsoft Word, Notepad ++ или WordPad (или открываю файл в указанных программах), он "исправляет" ошибку и равен результату. из класса ln.

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

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

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

1 ответ

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

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

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

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

В блокноте:

В Notepad++ и WordPad:

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

Для получения дополнительной информации перейдите к вопросу "Блокнот, игнорирующий переносы строк".

Другие вопросы по тегам