Заменить \ n в BufferedWriter.write ()? - PullRequest
1 голос
/ 13 декабря 2011

У меня есть строка, которая содержит, например, «Имя: Foo \ n Дата: 13.12.11 \ n»

Когда я делаю BufferedWriter.write (String) в текстовый файл, он фактически выводит\ n В любом случае можно ли заменить \ n что-то, что при записи в текстовый файл будет означать разрыв строки?

Вот пример кода.

String input = "Name: adfasd \n AN: asdfasdf \n";
Writer textOutput = null;
File file = new File("write.txt");  
textOutput = new BufferedWriter(new FileWriter(file));
textOutput.write( input );
textOutput.close();

Выход будет

http://img7.imageshack.us/img7/7694/exampleve.png

Ответы [ 3 ]

2 голосов
/ 13 декабря 2011

Windows использует окончания строк CR + LF, а не окончания LF.Вы должны иметь возможность использовать \r\n, чтобы получить желаемый результат.

В Википедии есть статья о новых строках , если вы хотите узнать больше.

1 голос
/ 13 декабря 2011

Это странно, я только что проверил следующий код, и полученный файл отображает сообщение в две строки:

public void test() throws IOException {
    BufferedWriter writer = new BufferedWriter(new FileWriter("/someDir/test.txt"));
    writer.write("Hello\nWorld");
    writer.close();
}

Результат:

Hello 
World
1 голос
/ 13 декабря 2011

Если строка содержит текст \ n, а не символ \ n, вы можете сделать

String text = "Line 1 \\n Line2";
System.out.println(text);
System.out.println(text.replace("\\n", "\n"));
...