你好我们在我的应用程序中有一个代码,它将jtextarea上的数据保存到.txt文件中。 问题是当我在我的jtextarea上键入多行文本并将其保存到“.txt”文件时,整个数据写成一行文本。
String content = txtDescriptionCity.getText(); //jtextarea
File file = new File("C:\\Tour v0.1\\Descriptions\\City\\"+txtcityname.getText()+".txt");
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(content);
bw.close();
我想在jtextarea上写文本...就像这样
“文字第一行
第二行文字
文字第三行“
答案 0 :(得分:2)
不要重新发明轮子。只需使用:
textArea.write(...);
它将使用您正在使用的平台的正确新行字符串替换Document中的换行符。
答案 1 :(得分:1)
如果按Enter键输入的行,请执行:
content = content.replaceAll("\r?\n", "\r\n");
然后使用Windows下的实际换行符:\r\n
(CR + LF)。记事本中未显示单个\n
。不太可能。
如果多行是由自动换行引起的,那么案件就更难了。
如果添加空格,
content = content.replaceAll(" +", "\r\n");
答案 2 :(得分:0)
你可以拆分然后写我的代码,我根据“。”(fullstops)拆分字符串。
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
for (String retval: content.split(".")){
bw.write(retval+".");
bw.newLine();
}
答案 3 :(得分:0)
首先我们读出系统行分隔符,然后我们拆分内容String并将新String Array的每个部分写入文件。 new FileWriter(*,true);
保证附加内容。
String seperator = System.lineSeparator();
String[] lines = content.split("\n");
FileWriter writer = new FileWriter(file ,true);
for (int i = 0 ; i < lines.length; i++){
writer.append(lines[i]+seperator);
}
writer.close();
}