eine Frage. Ich habe eine Textdatei mit gleichlangen Einträgen pro Zeile. Insgesammt 25 Zeilen sind enthalten.
Nun will ich den Inhalt einer Zeile (z.B. Zeile 12) mit einem anderen Inhalt füllen, somit den vorherigen Inhalt überschreiben.
Leider fällt mir keine Lösung ein, einzelne Zeilen zu über schreiben, aber folgende Lösung sollte das Problem auch lösen.
Einen neuen String-Array anlegen (String[] sArr = new String[])
Mit Fileinputstream die Datei in den Array einlesen:
Beispiel: File f = new File(„PFAD_DER_DATEI“); //neuen File erzeugen
String sInput = null;
String sAll = „“;
BufferedReader input = new BufferedReader( //File mit der Datei
//verbinden
new InputStreamReader(
new FileInputStream(f)
)
);
while ((sInput=input.readline())!=null { //Bis zum Ende auslesen
sAll+=sInput+"\n";
}
input.close();
sArr = sAll.split("\n"); //In den String-Array schreiben
3.Die 12. Zeile ersetzen (sArr[11]=„NEUE_ZEILE_12“
(zu beachten: die 12. Zeile hat im Array den Index 11, da die Indizes von Arrays bei 0 beginnen)
Datei überschreiben:
Beispiel:
_BufferedWriter output = new BufferedWriter( //File mit realer Datei
//verbinden
new OutputStreamWriter(
new FileleOutputStream(f)
)
);
f.createNewFile(); //Nicht notwendig, wenn Datei nur überschrieben
//werden soll, schadet aber nicht
for (int i=0; i
Abschließend:
Natürlich müssen die Lese- und Schreib-Operationen noch in „try-catch“-Blöcke, um Fehler abzufangen.