2016-04-23 55 views
0

我不确定为什么我的输出函数在创建文件时没有选择换行符。下面是代码:当我打印到命令行FileWriter不会追加新行

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方法工作正常,但下降的\ n所有实例文件输出。下面是此功能的 “破” 输出样本(这是频率计数器)

输出文件: 问:5 \ N:7 C:1 一个:5 吨:6个 S:3 (空间):6 R:1 E:4- C:1 ○:2 1:3 :2 宽:1 ,:1 H:4 “:1 瓦特:1 y:3 \ t:1 R: 1 我:1 G:1 :1 B:1 :1

应该有每个号码出现后,新的生产线。

如果你想整组我的班,在这里,他们是:http://pastebin.com/CCLLBUqF

回答

1

当写入文件时,你需要同时包含一个换行符和换行字符。 所以,在你toString()方法,在其中添加了"\n"换行,而不是同时添加换行和换行符:"\r\n"

+0

理想情况下,你应该应该使用System.getProperty(“line.separator”);而不是依赖于平台的行选择器字符 – Natecat

+0

嗯。我尝试使用“\ r”和System.getproperty方法,都失败了。 \ r并没有改变任何东西,并且System.getProperty在每个地方都添加了“null”。 – MegaZeroX

+0

没关系。当我使用\ r \ n将其更改为订单时,它起作用。非常感谢! – MegaZeroX