2014-06-08 4 views
7

Ich arbeite an einem Projekt, wo ich einige Daten in eine Datei drucken muss. Während der Debug-Phase möchte ich die alte Textdatei überschreiben, so dass ich die alte Datei nicht löschen muss, nur um das Ergebnis einiger Änderungen zu sehen, die ich im Code vorgenommen habe. Derzeit werden die neuen Ausgabedaten entweder zu den alten Daten in der Datei hinzugefügt, oder die Datei ändert sich überhaupt nicht (auch, warum könnte das so sein?). Das Folgende ist im Wesentlichen der Druckteil des Codes:Wie PrintWriter alte Datei überschreiben kann

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

Vielen Dank!

+0

@Reimeus: Danke! Wie dumm von mir :) Irgendeine Idee, warum die neuen Daten möglicherweise nicht angehängt worden sind? –

+0

@AlexandreVandermonde Es ist seltsam, dass es keine Append - sind Sie sicher, dass die Datei beschreibbar ist? – dasblinkenlight

+1

@dasblinkenlight: Bei weiterer Überprüfung der Datei merke ich, dass ich falsch damit hätte behaupten können, dass es keinen Anhang gab. Wir können das Problem wahrscheinlich fallen lassen. Danke trotzdem! –

Antwort

13

Pass false to the append parameter die Datei überschreiben:

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

true für den zweiten Parameter Passing zeigt an, dass Sie an die Datei angehängt werden soll; Passing false bedeutet, dass Sie die Datei überschreiben möchten.

+0

Danke! Wie dumm von mir :) Ich werde deine Antwort so schnell wie möglich akzeptieren. Irgendeine Idee, warum die neuen Daten nicht angehängt wurden? –