A mit B in einer Datei ersetzen

dg87

Erfahrenes Mitglied
Wenn ich eine Datei x einlese, mach ich dass ja über den InputStream und nun möchte ich a mit b ersetzten dafür brauch ich ja einen String (was InputStream) ja nicht ist und da dachte ich ich mach aus einem Stream einen String nur wie? Oder gibt es eine andere Möglichkeit?

Ich blick das grad nicht
 
Hi.

Ein Stream ist ein Folge von Bytes.

Wenn du Text einlesen willst, brauchst du eine Folge von Zeichen (char).

Das funktioniert mit einem Reader, z.B. einem FileReader

Gruß
 
Hallo,

du könntest die Datei auch einfach über einen java.util.Scanner zeilenweise einlesen (scanner.nextLine()), anschließend die gelesene Zeile mit String newStr = oldStr.replace(...,...) anpassen und die neue Zeile per in einem PrintWriter gewrappedten FileOutputStream / FileWriter mit println(newStr) ausgeben.

Aber musst / willst du das unbedingt mit pure Java machen?

Wenn nein, hätte ich einen alternativen Vorschlag, ganz im Sinne von "The right tool for the job".

Du könntest auch ganz einfach einen Prozess von java aus starten, der die Manipulation durchführt.
Das ginge beispielsweise einfach mit sed (Stream Editor, gibts auch für windows):
http://www.brunolinux.com/02-The_Terminal/Find_and Replace_with_Sed.html

Mit sed kannst du eine Datei oder auch eine Menge von Dateien in-place editieren

Gruß Tom
 

Neue Beiträge

Zurück