Input/Output BufferedWriter/Reader replace line

Braniac92

Mitglied
Hey Community :)

Ich hoffe mal, dass ich das Thema richtig eingeordnet habe.

Ich habe ein Anliegen, bei dem ich nicht weiter kommen. Habe auch schon recherchiert, allerdings konnte mir keine Strategie zur Lösung verhelfen.

Also zu meinem Problem.

Ich erzeuge mit einem BufferedWriter eine Datei. Jetzt habe ich aber das Problem, dass bei jedem Schritt die Initialisierung (die sein muss) mit reingeschrieben wird. Das erzeugt eine Fehlermeldung, die ich gerne weghaben würde.

Ich würde also gerne nach dem schreiben (oder beim schreiben) direkt prüfen, ob ein gewisser String (den ich kenne) geschrieben wird und ihn mit "" ersetzen.

Wie kann ich das umsetzen?

Hier mal eine Grobe skizierung, wie ich den Writer bediene:
Java:
try {
        fw = new FileWriter(Datei);
        bw = new BufferedWriter(fw);
                           
        bw.write( FUNKTIONSAUFRUF );
               
        bw.close();
        fw.close();
   

       } catch (IOException e1) {
            // TODO Auto-generated catch block
           e1.printStackTrace();
}


Ich habe öfter mal gelesen, dass man mit einem BufferedReader die Datei nach dem Close einlesen soll und dann replacen. Wie funktionier das denn?

Lieber wäre es mir aber ehrlich gesagt nach dem bw.write und vor dem bw.close den geschriebenen Text zu prüfen und zu replacen.. Ist das denn möglich?

Mir wären beide Lösungen recht, sofern sie funktionieren. Ich hoffe jemand kann mir bei meinem Problem weiterhelfen.
 
K

kneitzel

Gast
Also da verstehe ich Dein Problem nicht wirklich. Du schreibst ja den Inhalt in die Datei. Du kannst also vor dem Aufruf von write den String bearbeiten.

Das Ganze kannst Du dann in eine eigene Klasse packen, dann hast du halt eine Art Data Layer für den Dateizugriff.

Es wäre auch denkbar, einfach einen eigenen Writer zu schrieben, der von BufferedWriter erbt.

Die Idee, eine Datei erst zu schreiben um diese dann anzupassen halte ich für mangelhaft. Das wäre ja sozusagen "doppelte Arbeit".

Konrad
 
K

kneitzel

Gast
Es geht um eine fertige Funktion und Du hast keine Kontrolle über den Code? Hatte es so verstanden, dass es um Deinen Code geht.

Meine Idee ging halt in die Richtung, den Code selbst anzupassen.

Kannst Du das Szenario evtl. etwas mehr beschreiben?
 

Braniac92

Mitglied
Klar.

Also ich mache:

bw.write( FUNKTIONSAUFRUF );

Ich rufe hierbei eine Funktion auf, welche einen komplett zusammenhängenden String erzeugt.
Nehme ich nun die Initialisierung aus dieser Funktion raus, so funktioniert diese nichtmehr. Sprich also die Initialisierung muss sein.

Die Initialisierung beinhaltet so um die ersten 30 Chars von dem String. Daher ja die Frage, wie ich nach dem schrieben die ersten 30 Chars rausbekomme.
Wenn das vor dem bw.close(); gehen würde, wäre ich natürlich auch zufrieden. Sie sollen letztendlich nur nichtmehr in der Datei drin sein.

Angenommen ich schreibe folgendes:

String = "Initialisiere Hallo der Tag ist gut".

ich brauche aber nur "Hallo der Tag ist gut".

Mir wäre es natürlich auch lieber, wenn ich den String beim schreiben direkt rausnehmen könnte, aber da ich

eine Funktion aufrufe, weiß ich nicht, wie ich es vor dem closen rausnehmen kann.

meins wird ungefähr so aufgesführt:

public String sayHello(){
String s = new String("Initialisiere Hallo der Tag ist gut");
return s.tostring;
}

und dann

...
bw.write(sayHello());
...

Es gibt ja leider keine
replace-funktion, die beim schrieben einen String prüft.. oder?

Danke schonmal
 
K

kneitzel

Gast
Die Funktion, die Du aufrufst, gibt doch den String zurück. Also kannst Du aus dem einen Aufruf bw.write Aufruf mehrere Zeilen machen:
Code:
  String textToWrite = Funktionsaufruf();
  // Hier kannst Du den String modifizieren
  bw.write(textToWrite);

Damit sollte das doch dann erledigt sein.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Splayfer Problem mit BufferedWriter Allgemeine Java-Themen 3
C BufferedReader/BufferedWriter schreibt nicht alle Bytes Allgemeine Java-Themen 2
G Probleme mit BufferedWriter und URL Allgemeine Java-Themen 4
B BufferedWriter in InputStream oder Zeichen-Stream in Byte-Stream Allgemeine Java-Themen 5
W Problem mit BufferedWriter Allgemeine Java-Themen 13
J BufferedWriter schreibt von selbst ein "" Allgemeine Java-Themen 12
J IOException durch BufferedWriter.flush() ? Allgemeine Java-Themen 5
G Zeilenumbruch beim BufferedWriter? Allgemeine Java-Themen 3
R Problem mit BufferedWriter Allgemeine Java-Themen 4
E BufferedWriter irgendwie klonen! Allgemeine Java-Themen 7
G Frage zum BufferedWriter Allgemeine Java-Themen 8
K BufferedWriter voll? Allgemeine Java-Themen 5
W BufferedWriter.write() schreibt nicht Allgemeine Java-Themen 3
C Problem mit BufferedWriter Allgemeine Java-Themen 7
Master3000 Java Konsole über Buffered Reader Zeilenweise auslesen ? Allgemeine Java-Themen 26
Joker4632 Klassen Buffered Reader liest die Leerzeichen am Zeilen Ende nicht mehr Allgemeine Java-Themen 2
Tausendsassa Ycad dxf Reader/Writer Allgemeine Java-Themen 8
nrg Spezieller gepufferter Reader Allgemeine Java-Themen 2
D Datentypen Reader/InputStream wiederverwenden? Allgemeine Java-Themen 11
X Java Log Reader empfehlungen? Allgemeine Java-Themen 2
nrg new Reader(dateiname) und getResourceAsStream Allgemeine Java-Themen 17
S API File Reader Allgemeine Java-Themen 3
P PDF öffnen mit Acrobat Reader Allgemeine Java-Themen 9
M Welchen Reader? Allgemeine Java-Themen 8
P String.replace() funktioniert nicht? Allgemeine Java-Themen 3
Xge Replace x Zeichen aus String Allgemeine Java-Themen 2
Thallius Warum läst mein replace die Klammern drin? Allgemeine Java-Themen 10
KaffeeFan Methoden replace alle Buchstaben Allgemeine Java-Themen 3
K String.replace funktioniert nicht Allgemeine Java-Themen 3
nrg Find and replace Text docx Allgemeine Java-Themen 6
P ganze Zeilen in einem File mit .replace() ändern. Allgemeine Java-Themen 10
F Replace von Leerzeichen Allgemeine Java-Themen 8
M Replace Problem Allgemeine Java-Themen 10
L String Replace mit Regulärem Ausdruck Allgemeine Java-Themen 2
kodela replace und die Umlaute Allgemeine Java-Themen 10
E String replace java 1.4 Allgemeine Java-Themen 4
D Abstruse Probleme mit eigenem replace Algorithmus Allgemeine Java-Themen 11
G Mehrmals replace() auf langem String, zu speicherintensiv Allgemeine Java-Themen 10
E String.replace für (sehr) großen Text Allgemeine Java-Themen 9
S ￾ Zeichen umwandeln in ü per .replace(); Allgemeine Java-Themen 6
G spezielles replace Allgemeine Java-Themen 3
C Problem mit String.replace(CharSequence, CharSequence) Allgemeine Java-Themen 3
B Ersatz für "replace" Allgemeine Java-Themen 4
C String replace Allgemeine Java-Themen 8

Ähnliche Java Themen

Neue Themen


Oben