2014-06-08 124 views
7

我正在开发一个项目,我需要将一些数据打印到文件中。在调试阶段,我想覆盖旧的文本文件,这样我就不必删除旧文件来查看我在代码中所做的一些更改的结果。目前,新的输出数据要么被添加到文件中的旧数据中,要么文件根本不会改变(另外,为什么会这样?)。以下是本质上代码的打印部分:如何使PrintWriter覆盖旧文件

public class Test { 
    public static void main(String[] arg) { 
    PrintWriter pw = null; 
    try { 
     pw = new PrintWriter(new FileOutputStream("Foo.txt", true)); 
    } catch (Exception e){} 
    double abra = 5; 
    double kadabra = 7;  
    pw.printf("%f %f \n", abra, kadabra); 
    pw.close(); 
    } 
} 

谢谢!

+0

@Reimeus:谢谢!我有多傻:)任何想法为什么新数据可能没有被追加? –

+0

@AlexandreVandermonde奇怪的是,没有追加 - 你确定该文件是可写的? – dasblinkenlight

+1

@dasblinkenlight:在进一步检查该文件后,我意识到我可能错误地声称没有附加内容。我们可以放弃这个问题。不管怎么说,还是要谢谢你! –

回答

13

Pass false to the append parameter覆盖该文件:

pw = new PrintWriter(new FileOutputStream("Foo.txt", false)); 

传递true第二个参数表示要追加到文件;通过false意味着你想覆盖文件。

+0

谢谢!我多么愚蠢:)我会尽快接受你的回答。任何想法为什么新数据可能没有被追加? –