2016-07-27 16 views
1

Ich habe eine Datei, die nur eine sehr kleine Menge an Informationen enthält, die regelmäßig aktualisiert werden müssen. Mit anderen Worten, ich möchte die Datei vor dem Schreiben abschneiden. Die einfachste Lösung war ich gefunden zu löschen und neu zu erstellen, wie hier gezeigt:Java - Wie ersetzt man Dateiinhalte?

File myFile = new File("path/to/myFile.txt"); 
myFile.delete(); 
myFile.createNewFile(); 
// write new contents 

Diese Werke "in Ordnung, aber es gibt einen besseren Weg?

+0

Möchten Sie die Konsistenz Ihrer Datei erhalten? Wenn Sie das tun, gibt es möglicherweise eine bessere Antwort als im Duplikat. – dasblinkenlight

Antwort

1

Die Datei muss nicht gelöscht und neu erstellt werden. Wenn Sie in die Datei schreiben, zum Beispiel mit PrintWriter, überschreibt dies Ihren aktuellen Dateiinhalt.

Beispiel:

public static void main(String[] args) throws IOException 
{ 
     PrintWriter prw= new PrintWriter (“MyFile.txt”); 
     prw.println("These text will replace all your file content");   
     prw.close(); 
} 

Es wird nur bis zum Ende der Datei anhängen, wenn Sie die überladene Version des Printwriter-Konstruktor:

PrintWriter prw= new PrintWriter (new FileOutputStream(new File("MyFile.txt"), true)); 
//true: set append mode to true 
0

Im folgenden Beispiel wird die „false“ bewirkt, dass die Datei überschrieben wird, true würde das Gegenteil bewirken.

File file=new File("C:\Path\to\file.txt"); 
DataOutputStream outstream= new DataOutputStream(new FileOutputStream(file,false)); 
String body = "new content"; 
outstream.write(body.getBytes()); 
outstream.close();