
Я попытался вывести данные в текстовый файл с помощью операторов перенаправления > 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:
Другое возможное решение — скопировать текст изБлокнот, вставляя вБлокнот++,Word Pad,Microsoft Wordили любой текстовый редактор, распознающий этот тип переноса строки, а затем скопируйте его обратно.
Для получения более подробной информации перейдите к вопросу«Блокнот игнорирует переносы строк».