Überschreibe TXT-Datei in Java
Den code, den ich geschrieben haben soll, zu überschreiben, die über den Inhalt des gewählten text-Datei, aber es ' s anzuhängen. Was mache ich genau falsch?
File fnew=new File("../playlist/"+existingPlaylist.getText()+".txt");
String source = textArea.getText();
System.out.println(source);
FileWriter f2;
try {
f2 = new FileWriter(fnew,false);
f2.write(source);
/*for (int i=0; i<source.length();i++)
{
if(source.charAt(i)=='\n')
f2.append(System.getProperty("line.separator"));
f2.append(source.charAt(i));
}*/
f2.close();
} catch (IOException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
BEARBEITEN
Ich versucht, einen neuen temp.txt Datei und schreibt den neuen Inhalt in,, löschen Sie diesen text-Datei und umbenennen temp.txt auf diese eine. Die Sache ist die, das löschen ist immer erfolglos. Ich glaube nicht, dass ich ändern Benutzer-Berechtigungen für diese tun ich?
Auch, ein Teil von meinem Programm listet alle Dateien in diesem Verzeichnis, so dass ich vermute, Sie werden von dem Programm verwendet und kann so nicht gelöscht werden. Aber warum nicht überschrieben?
GELÖST
Meine größte "D ' Oh" - moment! Ich habe kompilieren in Eclipse statt cmd die war, wo ich war, der Sie ausführt. So meine neu kompilierte Klassen ging in den bin-Ordner und die kompilierte class-Datei über die Eingabeaufforderung die gleichen geblieben in meinem src-Ordner. Ich habe neu kompiliert mit meinem neuen code, und es funktioniert wie ein Charme.
File fold=new File("../playlist/"+existingPlaylist.getText()+".txt");
fold.delete();
File fnew=new File("../playlist/"+existingPlaylist.getText()+".txt");
String source = textArea.getText();
System.out.println(source);
try {
FileWriter f2 = new FileWriter(fnew, false);
f2.write(source);
f2.close();
} catch (IOException e) {
e.printStackTrace();
}
InformationsquelleAutor der Frage Karthik Balakrishnan | 2012-12-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein code funktioniert gut für mich. Es ersetzt den text in der Datei, wie erwartet, und nicht Anhängen.
Wenn Sie wollte anfügen, setzen Sie den zweiten parameter in
true;
InformationsquelleAutor der Antwort user1757442
Fügen Sie eine weitere Zeile nach der Initialisierung file-Objekt
InformationsquelleAutor der Antwort Android Killer
GELÖST
Meine größte "D ' Oh" - moment! Ich habe kompilieren in Eclipse statt cmd die war, wo ich war, der Sie ausführt. So meine neu kompilierte Klassen ging in den bin-Ordner und die kompilierte class-Datei über die Eingabeaufforderung die gleichen geblieben in meinem src-Ordner. Ich habe neu kompiliert mit meinem neuen code, und es funktioniert wie ein Charme.
InformationsquelleAutor der Antwort Karthik Balakrishnan
Dieses vereinfacht es ein bisschen und es verhält sich so, wie Sie es wollen.
InformationsquelleAutor der Antwort nullpotent
Den einfachsten Weg zum überschreiben einer text-Datei ist, verwenden Sie ein öffentliches statisches Feld.
dieser Befehl überschreibt die Datei jedes mal, da Ihr nur mit falschen die
ersten mal durch.`
Verwenden Sie es nur einmal durch das schreiben der Reihenfolge für das Feld Anhängen, Feld
der code für die falsche.
InformationsquelleAutor der Antwort user7471800