2013-05-31 8 views
0

Я пишу в файл, и я хочу его для вывода в файл CSV следующим образом:Java Запись в файл

Group Members 
1  Name1 
     Name2 
     Name3 

код:

FileWriter fw = new FileWriter(csv); 
BufferedWriter pw = new BufferedWriter(fw); 
pw.write("Group,"); 
pw.write("Members"); 
pw.newline(); 
String mem=some_method(); 
pw.write("1,"); 
pw.write(mem); 
pw.newLine(); 

Моя строка мем имеет «\ п «каждый после имен, и поэтому, когда он записывается в файл,« \ n »считывается, а затем записывается в следующую строку. Как я могу достичь вышеупомянутого вывода без изменения some_method()?

+2

Смотри также: http://opencsv.sourceforge.net/ –

ответ

0

Попробуйте, как показано ниже,

String mem=some_method(); 
mem = mem.replace("\n", ""); 

Вместо \ п вы можете также использовать System.getProperty("line.separator"), которая дает вам платформу сепаратор независимой линии.

mem = mem.replace(System.getProperty("line.separator"), ""); 
-1

Почему бы вам не объединить группы и член в одном методе записи, как:

pw.write("Group \t\t Members"); 

и сделать то же самое с другим содержимым. Надеюсь это поможет.

+0

Это не соответствует формату. – user2431248

0

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

Заканчивать Remove end of line characters from Java string

Попросту вы можете добавить строку mem = mem.replaceAll("(\\r|\\n)", "");

+0

Если я их удалю, имена не будут отображаться в следующих строках внутри ячейки. – user2431248

+0

Если вы хотите сохранить новые строковые символы, но если они отображаются как одна ячейка, вам просто нужно заключить элемент в двойные кавычки ("). Например, pw.write (" \ "" + mem + "\" "); –

+0

Просто имейте в виду, что вам нужно убедиться, что mem не содержит двойных кавычек или они, по крайней мере, экранированы, например mem = mem.replaceAll ("\" "," \\\ ""); –

Смежные вопросы