Java: PrintWriter и новые строки в строке - PullRequest
0 голосов
/ 03 мая 2018

Мой вопрос довольно прост, если у меня есть одна длинная строка с множеством символов "\ n" внутри, то есть:

strings = "Hey\nThere\nFriend\n"

И используйте PrintWriter в Java для следующих действий:

PrintWriter save = new PrintWriter("test.txt");
save.println(strings);
save.close();

Будет ли файл, который я получаю, отформатировать с помощью \ n? т.е. файл будет иметь:

Hey
There
Friend

Или будет иметь:

Hey\nThere\nFriend

Если это последнее, может кто-нибудь подсказать мне, как я могу изменить свой код (и понять, как работает PrintWriter), чтобы создать прежний вывод?

Ответы [ 3 ]

0 голосов
/ 03 мая 2018

Фактически, \n будет работать, но только для ОС на базе Unix. ОС Windows использует \r\n в качестве разделителя.

Вам следует избегать использования конкретного разделителя строк ОС, если вы хотите написать переносимый код.
Пользуйтесь System.lineSeparator(), чтобы не зависеть от ОС.
Также обратите внимание, что PrintWriter обеспечивает println() для достижения строки разрыва, которая не зависит от ОС (даже если это не является необходимым для вашего случая использования)

0 голосов
/ 03 мая 2018

На платформе Windows \ n означает char (13) + Char (10), которые вы можете использовать

String nl = Character.toString ((char) 13)+Character.toString ((char) 10);  
String strings = "Hey"+nl+"There"+nl+"Friend"+nl;
System.out.print(strings);
0 голосов
/ 03 мая 2018

Вы получите текстовый файл, содержащий одну текстовую строку Hey\nThere\nFriend\n, за которой следует последовательность строк новой операционной системы (вставляется println()).

Значение \n зависит от операционной системы и, возможно, текстового редактора. В Linux \n обычно интерпретируется как последовательность новой строки, но в Windows последовательность новой строки - \r\n, поэтому большинство текстовых редакторов (например, собственный Блокнот) отображают одну строку HeyThereFriend.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...