从getContent中保存java中的文件包含新行

时间:2013-10-13 04:34:41

标签: java file file-io makefile

我正在写一个java中的文件,其中使用getContent获取内容,但问题是它忽略了新行:

即:字段中的输入为:

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();
        }
    }
}

2 个答案:

答案 0 :(得分:1)

您是否在Notepad ++中打开了文件?

可能是因为\ r,\ n,\ r \ n在Windows中不能同等显示(据我所知,只有\ r \ n显示正确)

尝试更改此行:

fw.write(editArea.getText());

要:

fw.write(editArea.getText().replaceAll("[\r|\n|\r\n]", String.format("%n")));

答案 1 :(得分:1)

使用以下代码以准确的格式保存文件,并首先在 Wordpad 中查看此文件。

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();
}