Java text in textdokument?

... komplette Frage anzeigen

2 Antworten

Text bei einem Textdokument anhängen

Die Datei im Append-Modus deinem Writer mitgeben (letzter Parameter):

Writer output = new BufferedWriter(new FileWriter(my_file_name, true));

eine bestimmte Stelle des Textes löschen

Den Inhalt der Datei in einen String speichern, den besagten Inhalt innerhalb des Strings löschen. Die einzelnen Teile dann via Substring herausfiltern.

überprüfen lassen, ob ein bestimmter Text an einer bestimmten Stelle steht?

Hierfür kannst du Regular Expressions verwenden.

Antwort bewerten Vielen Dank für Deine Bewertung

Die Frage ist mir etwas zu unpräzise. Wenn dir die Antwort also nicht reicht, musst du mir nochmal erklären, an welcher Position Text angehängt werden soll und was es bedeutet, dass an einer bestimmten Stelle ein Text stehen soll.

In meiner Textdatei steht folgender Text:

Hier steht blub
Hier steht bla

Jetzt der Code:

//file verweist auf die Textdatei, tempFile ist eine temporäre Datei

File file = new File("/path/to/file.txt");
File tempFile = new File("/path/to/tempFile.txt");

//mit dem Reader lesen wir, der Writer schreibt...
BufferedReader rd = new BufferedReader(new FileReader(file));
BufferedWriter bw = new BufferedWriter(new FileWriter(tempFile));

//wir suchen nach dem Text "bla"
String search = "bla";

//wir wollen den Text "hallo" anhängen
String append = "hallo";

//wir wollen den Text "blub" löschen
String delete = "blub";

//wir lesen Zeile für Zeile die Datei

String line;
while ((line=rd.readLine())!=null){

//wir geben alle Zeilen aus, die den zu suchenden Text enthalten
if (line.contains(search)){
System.out.println(line);
}

//wir entfernen den zu löschenden Text
if (line.contains(delete)){
line = line.replace(delete,"");
}

//wir schreiben jede gelesene und evtl. veränderte Zeile in die temporäre Datei
bw.append(line+"\\n");
}

//wir schreiben ans Ende den anzuhängenden Text
bw.append(append);
bw.flush();

//wir löschen die alte Datei und ersetzen sie durch die temporäre Datei
file.delete();
newFile.renameTo(tempFile);
}

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von JeyKey55
20.09.2016, 21:21

und warum muss man erst alles in eine temporäre Datei speichern und dann ersetzen?

0

Was möchtest Du wissen?