从getContent include新行用java保存文件
我正在用java编写一个文件,其中内容是使用getContent获取的,但问题是它忽略了新行: ie:该字段中的输入为:从getContent include新行用java保存文件,java,file,file-io,makefile,Java,File,File Io,Makefile,我正在用java编写一个文件,其中内容是使用getContent获取的,但问题是它忽略了新行: ie:该字段中的输入为: 1 2 3 但我在文件中得到的是: 123 我的代码是: public void saveMap() { JFileChooser chooser = new JFileChooser(); chooser.setCurrentDirectory(new File("")); int retrival = chooser.showSaveDial
1
2
3
但我在文件中得到的是:
123
我的代码是:
public void saveMap() {
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File(""));
int retrival = chooser.showSaveDialog(null);
if (retrival == JFileChooser.APPROVE_OPTION) {
try(FileWriter fw = new FileWriter(chooser.getSelectedFile())) {
fw.write(editArea.getText());
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
你用记事本++打开文件了吗 这可能是因为\r\n\r\n在Windows中显示不均匀(据我所知,只有\r\n正确显示) 尝试更改此行:
fw.write(editArea.getText());
致:
使用以下代码以准确格式保存文件,并首先在写字板中查看此文件
try
{
FileWriter fw=new FileWriter(chooser.getSelectedFile());
fw.write(String.format(editArea.getText().replaceAll("[\r|\n|\r\n]", "%s"), System.getProperty("line.separator")));
fw.close();
}
catch(Exception e)
{
e.printStackTrace();
}
您是否尝试在写字板中打开文件并检查换行符是否显示正确。记事本不会格式化大多数内容。如果您选择基于操作系统的新行fw.write(String.format(“这只是测试%s这只是测试2”,System.getProperty(“line.separator”)),此代码可能对您有用;
try
{
FileWriter fw=new FileWriter(chooser.getSelectedFile());
fw.write(String.format(editArea.getText().replaceAll("[\r|\n|\r\n]", "%s"), System.getProperty("line.separator")));
fw.close();
}
catch(Exception e)
{
e.printStackTrace();
}