Я попытался вывести текстовый файл с помощью операторов перенаправления > 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 ответ1

0

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

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

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

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

В блокноте:

Блокнот

В Notepad++ и WordPad:

NotePad++ Word Pad

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .