代码之家  ›  专栏  ›  技术社区  ›  MegaZeroX

FileWriter不会追加新行

  •  0
  • MegaZeroX  · 技术社区  · 8 年前

    我不知道为什么我的输出函数在创建文件时没有拾取换行符。代码如下:

    private void outputToFile(){
        final JFileChooser fc = new JFileChooser();
        fc.setSelectedFile(new File("frequency.txt"));
        int returnVal = fc.showSaveDialog(null);
        File file = fc.getSelectedFile();
        try{
          FileWriter writer = new FileWriter(file);
          String out = this.toString();
          writer.append(out);
          writer.flush();
          writer.close();
        }
        catch(IOException e){
          System.out.println("Cancelled and aborted");
        }
      }
    

    当我打印到命令行时,我的toString方法可以正常工作,但会在文件输出中删除所有的实例。这是此函数的“中断”输出示例(这是一个频率计数器)

    输出文件: Q: 5个 \n: 第7条 C: 1台 a: 5个 t: 6个 s: 3个 (空格):6 r: 1月1日 e: 4个 c: 1月1日 o: 2个 l: 3个 .: 2 W: 1月1日 ,: 1 h: 4个 ': 1 w: 1台 y: 3个 \t: 1台 R: 1台 i: 1月1日 g: 1台 ?: 1. B: 1台 !: 1.

    每个数字后面应该有新的行。

    如果你想要我的全部课程,这里有: http://pastebin.com/CCLLBUqF

    1 回复  |  直到 8 年前
        1
  •  1
  •   Robert McHardy    8 年前

    编写文件时,需要同时包含换行符和换行符。 所以,在你的 toString() 方法,其中添加 "\n" 换行,而是同时添加换行符和换行符: "\r\n"