Wort suchen und ersetzen in einer Datei

S

Simon Programmiert

Mitglied
Hallo!
Ich möchte ein Programm schreiben, dass ein Wort in einer Datei sucht und ersetzt. Leider habe ich nicht viel Ahnung vom Lesen und Schreiben in Dateien mit Java. Kann mir bitte jemand dabei helfen?
Danke im Voraus!
 
Robat

Robat

Top Contributor
Was genau verstehst du denn nicht / wo hapert es? Es gibt ja genug Referenzen und Beispiele zu "Reading/Writing in Java" im Netz
 
S

Simon Programmiert

Mitglied
Ich habe folgenden Code geschrieben:
Java:
    File file = new File("/home/simon/test.txt");
    BufferedReader reader = new BufferedReader(new FileReader(file))
    String zeile;
    while ((zeile = reader.readLine()) != null) {
        int durchlauf = 0;
        if(durchlauf <= 124) { //die datei hat 124 Zeilen
            lines[durchlauf] = zeile;
            durchlauf++;
        }
        lines[durchlauf] = zeile;
        durchlauf++;
    }
      
    int d = 0; // steht für durchlauf
    while(d <= 124) {
        newlines[d] = lines[d].replaceAll("false", "true");
        d++;
    }
      
    file.delete();//sicherstellen ob es nichts überschreibt, anhängt oder ähnliches
    File newfile = new File("/home/simon/test.txt");
    newfile.createNewFile();
      
    d = 0;
    BufferedWriter writer = new BufferedWriter(new FileWriter(newfile));
    while(d <= 124) {
        writer.write(newlines[d]);
        writer.newLine();
        d++;
    }
    writer.close();
Eclipse gibt an der Fehler seie hier:
Java:
int d = 0;
    while(d <= 124) {
         newlines[d] = lines[d].replaceAll("false", "true");
         d++;
    }
 
T

Thorati

Mitglied
Wenn die Datei 124 Zeilen hat musst du while ( d < 124) und nicht (d <= 124) schreiben
 
mihe7

mihe7

Top Contributor
@Simon Programmiert Mit dem Code gibt es eine ganze Reihe von Problemen.

Problem 1: die erste Schleife
Innerhalb der ersten while-Schleife deklarierst Du die Variable durchlauf. Die wird in jeder Iteration auf 0 gesetzt. Anschließend prüfst Du ab, ob sie kleiner oder gleich 124 ist. Das ist natürlich immer der Fall, weshalb der then-Zweig immer ausgeführt wird, d. h. eine Zeile wird in lines[0] eingelesen, anschließend wird durchlauf auf 1 erhöht. Außerhalb des ifs setzt Du nochmal lines[durchlauf] auf zeile, d. h. an der Stelle betrifft es effektiv lines[1]. Das folgende Inkrementieren von durchlauf hat keinen Effekt, denn in der nächsten Iteration wird durchlauf wieder auf 0 gesetzt.

D. h. Deine Schleife bewirkt folgendes:
Java:
    while ((zeile = reader.readLine()) != null) {
        lines[0] = zeile;
        lines[1] = zeile;
    }

Es werden also nur lines[0] und lines[1] gesetzt. Wenn ich mal davon ausgehe, dass Du lines mit String[] lines = new String[124]; definiert und keinem Element explizit etwas zugewiesen hast, sind alle anderen null. Dann bekommst Du in der zweiten Schleife in der dritten Iteration eine NullPointerException.

Problem 2: Du arbeitest mit einer festen Zeilenanzahl. Wozu?

Problem 3: s. Antwort von @Thorati

Problem 4: Du liest die Zeilen erstmal in ein Array ein. Damit verbrauchst Du unnötig Speicher.

Problem 5: kein Exception-Handling

Problem 6:
Code:
file.delete();//sicherstellen ob es nichts überschreibt, anhängt oder ähnliches
Du willst sicherstellen, dass auch ja nichts überschrieben wird. Deshalb löscht Du die Datei erstmal vorsorglich? Auch eine Möglichkeit...
 
N

Nummer6800

Mitglied
Hallo!
Ich möchte ein Programm schreiben, dass ein Wort in einer Datei sucht und ersetzt. Leider habe ich nicht viel Ahnung vom Lesen und Schreiben in Dateien mit Java. Kann mir bitte jemand dabei helfen?
Danke im Voraus!

Wenn es dir um Geschwindigkeit geht, dann:
Boyer-Moore Algo, ist ein wenig schwerer zu verstehen.
Knuth-Morris-Pratt Algorithmus

Gruß
Axel Pfennig
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Wort in Text suchen und ersetzen Java Basics - Anfänger-Themen 3
I Wie kann ich ein Wort in einem String suchen Java Basics - Anfänger-Themen 3
G Wort suchen Java Basics - Anfänger-Themen 4
M Wort in einem String suchen und ausschneiden Java Basics - Anfänger-Themen 2
E Wort in Datei suchen Java Basics - Anfänger-Themen 5
I Java-Wort einlesen und ausgeben Java Basics - Anfänger-Themen 7
O zufälliges Wort aus einer Datei einlesen Java Basics - Anfänger-Themen 21
J Ein Wort aus einer Datei zufällig ermitteln Java Basics - Anfänger-Themen 3
B Umbruch nach bestimmten Wort Java Basics - Anfänger-Themen 5
M Programm, das ein Wort einliest Java Basics - Anfänger-Themen 3
P Zufälliges Wort direkt aus einer Liste ausgeben Java Basics - Anfänger-Themen 9
F Wort nach String ausgeben Java Basics - Anfänger-Themen 5
L Mit java ein wort mehrfach versetzt darstellen Java Basics - Anfänger-Themen 14
T Zeilen des ListArray nach einem Wort durchsuchen und diese Zeile ausgeben Java Basics - Anfänger-Themen 4
V Ein Wort einlesen und dann jede Buchstabe ausgeben Java Basics - Anfänger-Themen 10
H Erste Schritte Längstes Wort eines Strings herausfinden Java Basics - Anfänger-Themen 7
Ananaskirsche Variablen Gucken ob Wort in Datei exisitert Java Basics - Anfänger-Themen 6
L Wort in String ersetzen Java Basics - Anfänger-Themen 11
X Methoden Wort aus String löschen und richtige Verschachtelung Java Basics - Anfänger-Themen 17
W Vergleich ob Buchstabe in einem Wort enthalten ist Java Basics - Anfänger-Themen 3
M Methoden String methoden ,Häufigkeit einm wort in der Zeichenkette Java Basics - Anfänger-Themen 14
N RegEx Wort anzeigen Java Basics - Anfänger-Themen 6
B CSV auslesen > Wort bilden > CSV ausgeben Java Basics - Anfänger-Themen 7
K Klassen String - nach Wort durchsuchen Java Basics - Anfänger-Themen 6
D 1 Wort aus TextDatei auslesen Java Basics - Anfänger-Themen 3
J Ein Wort einlesen und dann jede Buchstabe ausgeben Java Basics - Anfänger-Themen 25
D Das 1. Wort aus einem String herauslesen Java Basics - Anfänger-Themen 6
W Zahl/Wort in ein Array zerlegen Java Basics - Anfänger-Themen 6
D Wort nach Leerzeichen - String Java Basics - Anfänger-Themen 10
I Wort aus String löschen Java Basics - Anfänger-Themen 11
S Wort in zwei farben aufleuchten lassen Java Basics - Anfänger-Themen 2
Ollek Bestimmtes Wort aus einem Dokument lesen Java Basics - Anfänger-Themen 7
T Ersten Buchstaben in einem Wort groß schreiben. Java Basics - Anfänger-Themen 6
I Schriftart für einzelnes Wort in der JTextArea auswählen Java Basics - Anfänger-Themen 3
L Was bedeutet das Wort "this" ? Java Basics - Anfänger-Themen 2
B a > n ? "wort" : "blub" << was Java Basics - Anfänger-Themen 3
B Char kommt 2 mal im Wort vor (indexOf) Java Basics - Anfänger-Themen 5
M Bestimmtest Wort aus einer Textdatei löschen Java Basics - Anfänger-Themen 3
L Gezielte Infos aus Datei holen - Suche nach Position/Wort Java Basics - Anfänger-Themen 22
T Deutsches Wort für WindowClosingAdapter :) Java Basics - Anfänger-Themen 9
D wort rückwärts Java Basics - Anfänger-Themen 9
D Ein Wort einlesen über Tastatur und wieder ausgeben Java Basics - Anfänger-Themen 6
M Wort als Int funktioniert nicht Java Basics - Anfänger-Themen 29
O Namen (mit Umlauten und ß) in einer ArrayList suchen Java Basics - Anfänger-Themen 5
B Alle Links in einem Text suchen und ersetzen mit einem neuen Link Java Basics - Anfänger-Themen 18
UnknownInnocent Koordinate in Liste suchen Java Basics - Anfänger-Themen 20
Ellachen55 Wie nach häufigste Werte im Array suchen? Java Basics - Anfänger-Themen 2
B Java Mail: suchen von mehreren Emailadressen Java Basics - Anfänger-Themen 5
D Erste Schritte Wert im Array suchen Java Basics - Anfänger-Themen 12
B Suchen und sortieren Java Basics - Anfänger-Themen 10
J Wörter aus Textdatei suchen Java Basics - Anfänger-Themen 2
A Erste Schritte Buchstaben im Array suchen Java Basics - Anfänger-Themen 8
F In List Rekursiv suchen Java Basics - Anfänger-Themen 12
S Amazon Produktbeschreibung auslesen und nach Keywords suchen Java Basics - Anfänger-Themen 2
C In ArrayList suchen Java Basics - Anfänger-Themen 6
G nach 9 - stelliger Nummer suchen Java Basics - Anfänger-Themen 7
D Liste nach 2 gleichen Einträgen suchen Java Basics - Anfänger-Themen 4
N Operatoren Suchen nach einer bestimmten Eingabe (durch Scanner) Java Basics - Anfänger-Themen 7
C char in String suchen und durch anderen String ersetzen Java Basics - Anfänger-Themen 2
Y Explizites Suchen Java Basics - Anfänger-Themen 13
M Zeichen suchen und Ausgeben. Java Basics - Anfänger-Themen 3
K String in String-Array suchen Java Basics - Anfänger-Themen 11
T Suchen in sortiertem Feld Java Basics - Anfänger-Themen 2
K Im String Array suchen Java Basics - Anfänger-Themen 8
E Belebeste Area im Game of Life suchen Java Basics - Anfänger-Themen 0
A Hash Tabelle Element suchen Java Basics - Anfänger-Themen 1
L Name im Array suchen Java Basics - Anfänger-Themen 12
I Innerhalb einer Methode suchen und hinzufügen. Neues Objekt in Suche dann? Java Basics - Anfänger-Themen 8
F Methoden Kontaktliste - String in einem Array suchen und ausgeben Java Basics - Anfänger-Themen 3
A Suchen und ersetzen Java Basics - Anfänger-Themen 13
P Teilstring suchen Java Basics - Anfänger-Themen 3
D String in Datei suchen und löschen Java Basics - Anfänger-Themen 2
A Nach dem Objekt suchen Java Basics - Anfänger-Themen 1
F In einem String nach einem String suchen und Zeichen danach ausgeben Java Basics - Anfänger-Themen 6
K Maximum Suchen Array Java Basics - Anfänger-Themen 6
W .txt auslesen und nach schlüsselbegriffen suchen Java Basics - Anfänger-Themen 7
S Suchen in Arrays Java Basics - Anfänger-Themen 7
J Input/Output String Suchen und Ersetzen Java Basics - Anfänger-Themen 8
A Kleinste Ziffer im Array suchen um Sortierung zu erzeugen Java Basics - Anfänger-Themen 2
N Java Programm zum Suchen und Ersetzen von Text Dateien Java Basics - Anfänger-Themen 10
T String in Array suchen Java Basics - Anfänger-Themen 9
G Erste Schritte Nach bestimmten Dateien suchen und dann in die Registry schreiben. Java Basics - Anfänger-Themen 6
B Nach regulären Ausdrücken suchen Java Basics - Anfänger-Themen 14
C Bestimmte Informationen von Webseite suchen Java Basics - Anfänger-Themen 13
B Suchen und ersetzten mit \ ? Java Basics - Anfänger-Themen 9
A String in String suchen Java Basics - Anfänger-Themen 3
J Nach einem Wert suchen +/- x Java Basics - Anfänger-Themen 8
D Binäres Suchen Java Basics - Anfänger-Themen 11
N Weg suchen bei Adjazenzmatrix Java Basics - Anfänger-Themen 2
E Suchen mit Hashfunktion ?! Java Basics - Anfänger-Themen 7
C Binäres Suchen mit Rekursion Java Basics - Anfänger-Themen 5
I Erste Schritte Ein Zeichen in einem Array Suchen Java Basics - Anfänger-Themen 8
N Binär suchen: Java Basics - Anfänger-Themen 4
D In Hashtable suchen Java Basics - Anfänger-Themen 3
J In String suchen Java Basics - Anfänger-Themen 14
D Nach String "{" suchen Java Basics - Anfänger-Themen 4
3 3. Element mit regulären Ausdruck suchen Java Basics - Anfänger-Themen 12
L String suchen und ersetzten, ohne neue Datei Java Basics - Anfänger-Themen 4
M Notiz suchen-Programm Java Basics - Anfänger-Themen 3
F Zusammenhängend Komponente suchen(Graph) Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Anzeige

Neue Themen


Oben