Textfile lesen/schreiben abhängig vom inhalt

dior

Bekanntes Mitglied
Hi,

ich suche schon ne ganze weile in google und dem forum nach einer lösung aber irgendwie steh ich am schlauch...

ich lese eine textdatei ein, und will in eine neue datei schreiben wobei ich aber einige zeilen (abhängig vom inhalt in der entprechenden zeile) nicht mit ausgeben.

z.B.:

inhalt textfile alt:

Heute ist ein schöner Tag
Hello World
Tag ein Tag aus
Wie gewonnen so ...

jetzt möchte ich alle Zeilen weglassen in denen "Tag" vorkommt

Ausgabedatei:

Hello World
Wie gewonnen so ...

Ich habe bis jetzt folgenden Code:
Java:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package UserverwaltungGIS;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.RandomAccessFile;

/**
 *
 * 
 */
public class Loeschen {

    public static void Loeschen() throws IOException {
    }

    public static void main(String args[]) throws IOException {

        String filePath = "Stapel.txt";
        File file = new File(filePath);
        if (file.isFile()) {
            // Initial setup
            FileInputStream inputStream = new FileInputStream(file);
            InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
            StringBuilder stringBuilder = new StringBuilder();

            // Read everything into a StringBuilder
            stringBuilder.append(bufferedReader.readLine());
            while (bufferedReader.ready()) {
                stringBuilder.append("\r\n");
                stringBuilder.append(bufferedReader.readLine());
            }
            
            // Write input to File
            try {
           
            // Create file 
            FileWriter fstream = new FileWriter("Stapel2.txt");
            BufferedWriter out = new BufferedWriter(fstream);
            out.write(stringBuilder.toString());
            //Close the output stream
            out.close();
        } catch (Exception e) {//Catch exception if any
            System.err.println("Error: " + e.getMessage());
        }

            // Print the content of the file on the screen

            System.out.println(stringBuilder.toString());
        }





    }
}


:rtfm:

danke
 

AlexSpritze

Bekanntes Mitglied
Die Zeilen 38 bis 44 würde ich ersetzen durch:

Java:
BufferedReader bufferedReader = new BufferedReader(...);
    String line = null;
    while ((line = bufferedReader.readLine()) != null) {
      if (line.contains("Tag")) {
        continue; // Zeile enthält Tag, nicht wieder mit ausgeben
      }
     stringBuilder.append("\r\n");
     stringBuilder.append(bufferedReader.readLine());
    }

Aber das kann man ganz gut noch weiter optimieren, z.B., dass du es direkt wieder in die neue Datei schreibst, ohne es im StringBuilder zwischenzuspeichern. Dann kannst du es allerdings wenn du fertig bist, nicht mehr ausgeben, naja. ....

Noch was: das out.close() in Zeile 52 solltest du in den finally-Block des Try-Catches schieben:

Java:
try{...}
catch(Exception e){...}
finally{
if(out != null)
  out.close();
}

So stellt dein Code sicher, dass die Resource, wenn sie geöffnet worde, immer geschlossen wird!
 
Zuletzt bearbeitet:

André Uhres

Top Contributor
Hallo Dior,

wir könnten auch eine "loeschen" Methode erstellen, die die "tag"-Zeilen herausfiltert. Beispiel:

Java:
            stringBuilder.append(loeschen(bufferedReader.readLine()));
...
    private static String loeschen(final String line) {
        return line.toLowerCase().contains("tag") ? "" : line + "\r\n";
    }
Gruß,
André
 

mannni10

Mitglied
Hallo dior,

machs doch einfach so:

Du liest zeile für zeile aus der alten TextDatei aus und schreibst nur die neuen wieder rein:
Java:
// String der in das neue Textdokument geschrieben wird
String toWrite = null; 

 // neuen Reader mit Pfad auf das alte Dokument zum auslesen
BufferedReader in = new BufferedReader(new FileReader("pfadDesDokuments"));

//Überprüfung ob es im Alten Dokument eine weitere Zeile gibt
while ((zeile = in.readLine()) != null){ 

//Überprüfung ob die Zeile "Tag" enthält
if (zeile.contains("tag")){
} // wenn ja mache nichts
else{
File file = new File("Pfad vom neuen Dokument");
FileWriter writer = new FileWriter(file, true);
writer.write("Text"); //Text schreiben
writer.write(System.getProperty("line.separator")); // Absatz machen
} //wenn doch dann schreib sie in das neue dokument.
 
G

Gast2

Gast
Java:
    while ((line = bufferedReader.readLine()) != null) {
      if (line.contains("Tag")) {
        continue; // Zeile enthält Tag, nicht wieder mit ausgeben
      }
     stringBuilder.append("\r\n");
     stringBuilder.append(bufferedReader.readLine());
}
Damit überspringst du jede zweite Zeile, es wird zweimal readLine aufgerufen.
 

AlexSpritze

Bekanntes Mitglied
Java:
    while ((line = bufferedReader.readLine()) != null) {
      if (line.contains("Tag")) {
        continue; // Zeile enthält Tag, nicht wieder mit ausgeben
      }
     stringBuilder.append("\r\n");
     stringBuilder.append(bufferedReader.readLine());
}
Damit überspringst du jede zweite Zeile, es wird zweimal readLine aufgerufen.

Richtig! In Zeile 7 muss nur
Code:
line
appendiert werden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
mwildam Textfile lesen und schreiben - so viele Möglichkeiten Java Basics - Anfänger-Themen 5
L Textfile mit StringTokenizer einlesen und sortiert ausgeben Java Basics - Anfänger-Themen 8
F Textfile auslesen und durchsuchen Java Basics - Anfänger-Themen 13
N User Eingabe mit Zeile aus TextFile vergleichen Java Basics - Anfänger-Themen 13
A Textfile wird nur unvollständig eingelesen Java Basics - Anfänger-Themen 4
M Import Unicode Textfile Java Basics - Anfänger-Themen 10
L Textfile mit BufferReader einlesen Java Basics - Anfänger-Themen 4
A Textfile verarbeiten. Java Basics - Anfänger-Themen 15
M textfile mit java auslesen Java Basics - Anfänger-Themen 4
M if-else-endif in Textfile erkenne Java Basics - Anfänger-Themen 8
M in Textfile Strukturen erkennen Java Basics - Anfänger-Themen 5
M Textfile durchlaufen und ersetzen Java Basics - Anfänger-Themen 2
M in Textfile Textphrase ersetzen Java Basics - Anfänger-Themen 13
P Textfile einlesen Java Basics - Anfänger-Themen 8
S Ringbuffer-Speicher mit einem Textfile Java Basics - Anfänger-Themen 2
H Mit JSP in ein Textfile schreiben Java Basics - Anfänger-Themen 2
H Header von Textfile bearbeiten Java Basics - Anfänger-Themen 14
G Stringmaipulation, Textfile einelsen und Suchen und Ersetzen Java Basics - Anfänger-Themen 12
M Textfile in einer JTextArea anzeigen Java Basics - Anfänger-Themen 3
R Textfile vs Serialized Objects Java Basics - Anfänger-Themen 4
A Abspeichern von werten in einer textfile. Java Basics - Anfänger-Themen 2
G wie 'tabs' und 'zeilenumbruch' in textfile einbauen? Java Basics - Anfänger-Themen 5
G Textfile bearbeiten und speichern Java Basics - Anfänger-Themen 3
A Hilfe beim Lesen von Pfaden und Systemvariablen Java Basics - Anfänger-Themen 3
I API - zurückgegebener JSON String lesen und in Entity konvertieren Java Basics - Anfänger-Themen 2
Say 2-DIM Array Code lesen und verstehen Java Basics - Anfänger-Themen 5
N Textdatei aus Resourcen-Ordner eines Projekts/ jar-file lesen Java Basics - Anfänger-Themen 4
W Timestamp lesen Java Basics - Anfänger-Themen 6
J Dateien lesen und schreiben Java Basics - Anfänger-Themen 5
F MS365 Kalender lesen Java Basics - Anfänger-Themen 5
Robin Gentele XML von Webserver lesen und ausgeben Java Basics - Anfänger-Themen 5
H Scripte oder Programmcode aus Datei lesen? Java Basics - Anfänger-Themen 5
S Zufällige ungerade Zeile aus Text-Datei lesen Java Basics - Anfänger-Themen 5
C Fehlermeldungen lesen Java Basics - Anfänger-Themen 2
S Allgemeine Java Codes lesen und verstehen Java Basics - Anfänger-Themen 7
NeoLexx Datenströme Lesen und Schreiben einer Textdatei Java Basics - Anfänger-Themen 2
rafi072001 Lesen aus einem Excel File Java Basics - Anfänger-Themen 10
T Klassen Den Wert aus Array lesen lassen Java Basics - Anfänger-Themen 12
J Lesen und schreiben in eine Datei(Anfänger- Dateizugriffe) Java Basics - Anfänger-Themen 3
S JSON Datei schreiben und lesen Java Basics - Anfänger-Themen 3
S Java Array Länge aus anderer Klasse lesen Java Basics - Anfänger-Themen 1
G Excle datei aus resources folder finden und lesen Java Basics - Anfänger-Themen 5
J Datei aus Projektfolder lesen Java Basics - Anfänger-Themen 12
H Vererbung Static Scanner Objekt verwenden - von StdIn in einer importierten Klasse lesen Java Basics - Anfänger-Themen 10
K Probleme beim Programm schreiben - Lesen von Dateiinhalten -zaehlen von Wörtern/ Buchstaben Java Basics - Anfänger-Themen 4
S Tastatur input lesen Java Basics - Anfänger-Themen 7
S Mit FileReader lesen, in ArrayList speichern Java Basics - Anfänger-Themen 4
B Aus Datei lesen Java Basics - Anfänger-Themen 23
B Aus Datei lesen Java Basics - Anfänger-Themen 0
deatzi Wert aus anderer Klasse lesen Java Basics - Anfänger-Themen 7
W Wie lasse ich meine Ausgabe nach dem Lesen verschwinden ? Java Basics - Anfänger-Themen 1
A JSON Lesen und Schreiben. Java Basics - Anfänger-Themen 3
S Daten lesen und speichern Java Basics - Anfänger-Themen 26
C Input/Output Datei aus Startverzeichnis lesen Java Basics - Anfänger-Themen 6
amazinglife77 Input/Output Lesen/Schreiben Properties: in eclipse geht, als JAR nicht Java Basics - Anfänger-Themen 4
G Input/Output Aus txt-Datei lesen, aus Ordner Java Basics - Anfänger-Themen 1
S BufferedReader nächste Zeile lesen Java Basics - Anfänger-Themen 4
sourcecorn Werte aus einem File lesen Java Basics - Anfänger-Themen 6
G Jar-Archiv zum Lesen einer Konfigurationsdatei Java Basics - Anfänger-Themen 9
MaxG. Input/Output Datei lesen Java Basics - Anfänger-Themen 3
Hacer Quellcode lesen Java Basics - Anfänger-Themen 13
H Aus wav-datei lesen und in neue wav-datei speichern Java Basics - Anfänger-Themen 10
N Lesen eines files mit FILES.lines Java Basics - Anfänger-Themen 11
A Private Attribut aus fremder Klasse lesen ? Java Basics - Anfänger-Themen 19
R Ab einer bestimmten Zeile lesen Java Basics - Anfänger-Themen 3
P vokale konsonanten ziffern satzzeichen aus string lesen. hab kiene ahnung Java Basics - Anfänger-Themen 10
A textfeldwerte aus array lesen Java Basics - Anfänger-Themen 27
K Classpath Lesen von Property-File Java Basics - Anfänger-Themen 1
D Methoden Array aus Datei lesen und weitergeben? Java Basics - Anfänger-Themen 7
T 'Nix' aus Textdokument lesen Java Basics - Anfänger-Themen 11
G tga Datei lesen und in eine matrix umwandeln Java Basics - Anfänger-Themen 1
F Input/Output Dateien lesen/schreiben Java Basics - Anfänger-Themen 1
E lesen csv file column by column Java Basics - Anfänger-Themen 10
G Bis zu einem bestimmten Punkt aus Datei lesen Java Basics - Anfänger-Themen 2
K Mit Scanner aus einer txt Datei lesen und jede Person mit name, vorname, geburtsdatum speichern Java Basics - Anfänger-Themen 5
K Dateien lesen | IndexOutOfBoundsException Java Basics - Anfänger-Themen 2
E Input/Output Property-Datei aus einer Zip lesen in in einer anderen Zip-Datei ist Java Basics - Anfänger-Themen 3
B Input/Output Scanner-Probleme bei String-Lesen Java Basics - Anfänger-Themen 3
I Properties oder Umgebungsvariablen mit ${irgendwas} lesen? Java Basics - Anfänger-Themen 2
D Lesen aus Datei (java.util.NoSuchElementException) Java Basics - Anfänger-Themen 22
D Problem beim Lesen einer txt-Datei Java Basics - Anfänger-Themen 8
G Zeile charweise lesen Java Basics - Anfänger-Themen 3
J Aus Datei lesen und ausgeben Java Basics - Anfänger-Themen 4
N Bestimmte Inhalte aus Datei lesen Java Basics - Anfänger-Themen 11
G Datei zeilenweise lesen Java Basics - Anfänger-Themen 19
M Wie sämtliche Schlüssel und Attibutwerte aus einer Propertie Datei lesen? Java Basics - Anfänger-Themen 3
S Compiler-Fehler jOpenDocument Kompelierfehler - ODS Datei lesen Java Basics - Anfänger-Themen 2
C Aus einer Textdatei Zahlen lesen mit Leerzeichen Java Basics - Anfänger-Themen 11
T BufferReader soll datei mehrmals lesen Java Basics - Anfänger-Themen 13
G Leere Zeile lesen Java Basics - Anfänger-Themen 12
F Effizientes Lesen von 65 Datein mit Boolean Werten Java Basics - Anfänger-Themen 6
S Datei aus JAR lesen. Java Basics - Anfänger-Themen 9
G Zeilenweise lesen Java Basics - Anfänger-Themen 17
C Mehrere Tasten beim KeyListener gleichzeitig lesen Java Basics - Anfänger-Themen 2
B Erst lesen: Automatisch Texteingabe bestätigen Java Basics - Anfänger-Themen 6
S Textdatei lesen, Methode gibt nur die letzte Zeile aus. Warum? Java Basics - Anfänger-Themen 5
X Einen Text aus dem Netz lesen?! Java Basics - Anfänger-Themen 3
J Java API lesen lernen Java Basics - Anfänger-Themen 4
Z Problem beim Lesen und Schreiben einer Datei Java Basics - Anfänger-Themen 10
N Erste Zeile bei BufferedReader doppelt lesen? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben