2014-06-08 4 views
7

Sto lavorando a un progetto in cui è necessario stampare alcuni dati in un file. Durante la fase di debug, vorrei sovrascrivere il vecchio file di testo in modo che non debba cancellare il vecchio file solo per vedere il risultato di alcune modifiche che ho apportato nel codice. Attualmente, i nuovi dati di output vengono aggiunti ai vecchi dati nel file o il file non cambia affatto (inoltre, perché potrebbe essere?). Quanto segue è, in sostanza, la parte stampata del codice:Come rendere PrintWriter sovrascrivere il vecchio file

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

Grazie!

+0

@Reimeus: Grazie! Che sciocco da parte mia :) Qualche idea sul perché i nuovi dati potrebbero non essere stati aggiunti? –

+0

@AlexandreVandermonde È strano che non ci siano append - sei sicuro che il file sia scrivibile? – dasblinkenlight

+1

@dasblinkenlight: dopo un'ulteriore ispezione del file, mi rendo conto che avrei potuto avere torto nel sostenere che non ci fosse un'app. Probabilmente possiamo abbandonare il problema. Grazie comunque! –

risposta

13

Pass false to the append parameter per sovrascrivere il file:

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

Passando true per il secondo parametro indica che si desidera aggiungere al file; passare false significa che si desidera sovrascrivere il file.

+0

Grazie! Che sciocco da parte mia :) Accetterò la tua risposta il prima possibile. Qualche idea sul perché i nuovi dati potrebbero non essere stati aggiunti? –