Datenströme Lesen und Schreiben einer Textdatei

NeoLexx

Mitglied
Hej Leute,

folgendes Programm tut nicht ganz das was es soll, ich finde gerade den Fehler nicht. Aufgabe dazu sah wie folgt aus:

"Schreiben Sie ein Programm, das eine Textdatei einliest, alle Vorkommnisse der Vokale a, e, i, o und u durch ein a ersetzt und die veränderte Datei im selben Verzeichnis unter einem aussagekräftigen Namen speichert."

(Meine erster Anlauf die Aufgabe zu lösen mag nicht der effizienteste sein, soll hier aber nicht das Thema sein. )

Die Datei wird wie gewünscht erstellt enthält jedoch den unveränderten Text der original Datei.

Java:
import java.io.*;
import java.util.*;

public class Datei {
    
    public boolean verarbeiteDatei(File eingabe, File ausgabe) throws IOException {
        boolean ergebnis;
        List<String> text = new LinkedList<String>();
        
        if (eingabe.isFile()) {
            try {
                FileReader fileReader = new FileReader(eingabe);
                
                BufferedReader bufferedReader = new BufferedReader(fileReader);
                
                
                for (String zeile = bufferedReader.readLine(); zeile != null; zeile = bufferedReader.readLine()) {
                    text.add(zeile);
                }
                
                bufferedReader.close();
                fileReader.close();
            } catch (IOException ex) {
                ex.printStackTrace();
                ergebnis = false;
            }
            
            for (String textzeilen: text) {
                textzeilen = textzeilen.replace('e','a');
                textzeilen = textzeilen.replace('i','a');
                textzeilen = textzeilen.replace('o','a');
                textzeilen = textzeilen.replace('u','a');
                System.out.println(textzeilen); //Debug (hier wird bereits der veränderte Text richtig ausgegeben
            }
            
            try {
                FileWriter fileWriter = new FileWriter(ausgabe);
                BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
                for (String textzeile: text) {
                    bufferedWriter.write(textzeile);
                    bufferedWriter.newLine();
                }
                
                bufferedWriter.close();
                fileWriter.close();
                
                ergebnis = true;
                
            } catch (IOException ex) {
                ex.printStackTrace();
                ergebnis = false;
            }
            
            
        } else
            ergebnis = false;
        
        return ergebnis;
    }

}

Hier rufe ich die Methode auf:

Java:
import java.io.File;
import java.io.IOException;

public class Hauptklasse {
    
    public static void main(String[] args) throws IOException {
        String sep = File.separator;
        String dateipfadeingabe = "C:"+ sep +"TestVerzeichnis"+ sep +"Text Datei.txt";
        String dateipfadausgabe = "C:"+ sep +"TestVerzeichnis"+ sep +"Text Datei Ausgabe.txt";
        File eingabe = new File (dateipfadeingabe);
        File ausgabe = new File (dateipfadausgabe);
        Datei datei = new Datei();
        
        System.out.println(datei.verarbeiteDatei(eingabe, ausgabe));
    }

}

Ich konnte den Fehler auf den zweiten try-Block eingrenzen, komme jedoch nicht weiter.
 

DrPils

Bekanntes Mitglied
Die Änderungen an den Strings in der Schleife in Zeile 28, wirken sich nur auf die lokale Variable aus.
Die Strings in deiner Liste sind davon unberührt. Strings sind Immutable, also unveränderlich, dh du musst die Strings in deiner Liste durch die neuen ersetzen.
 

MoxxiManagarm

Top Contributor
(Meine erster Anlauf die Aufgabe zu lösen mag nicht der effizienteste sein, soll hier aber nicht das Thema sein. )

Ich würde dir trotzdem gerne 2 Tipps mit auf den weg geben, ich hoffe das ist in Ordnung.

textzeilen = textzeilen.replace('e','a'); textzeilen = textzeilen.replace('i','a'); textzeilen = textzeilen.replace('o','a'); textzeilen = textzeilen.replace('u','a');

replace nimmt einen regulären Ausdruck. Damit kannst du diese 4 Zeilen zu einer Zeile zusammenfassen.

bufferedWriter.close(); fileWriter.close();

Nicht falsch, aber ich empfehle dir die Verwendung des AutoCloseable Interfaces anzugewöhnen. Dann musst du nicht diese Zeilen extra schreiben. Und schon kannst du z.B. den einen Block in Hinblick auf das AutoCloseable Interface so zusammenkürzen

Java:
try (BufferedReader bufferedReader = new BufferedReader(new FileReader(eingabe));) {
    for (String zeile = bufferedReader.readLine(); zeile != null; zeile = bufferedReader.readLine()) {
        text.add(zeile);
    }
} catch (IOException ex) {
    ex.printStackTrace();
    ergebnis = false;
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Input/Output Datenströme schließen in eigener Methode Java Basics - Anfänger-Themen 5
C Datenströme - Objekte speichern Java Basics - Anfänger-Themen 12
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
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
R Input/Output einzelnes char aus .txt lesen Java Basics - Anfänger-Themen 11
R XML mit unsortierten Nodes lesen Java Basics - Anfänger-Themen 4
M Zahlen aus Array lesen Java Basics - Anfänger-Themen 19
I Methoden zum lesen und speichern von Dateien Java Basics - Anfänger-Themen 2
M Dateien erstellen/ bearbeiten/ lesen Java Basics - Anfänger-Themen 9
M Input/Output Viele short aus Datei lesen und von Little Endian zu Big Endian umwandeln Java Basics - Anfänger-Themen 12
J Lesen von Textdokumenten Java Basics - Anfänger-Themen 3
J Zeichen aus String Array lesen Java Basics - Anfänger-Themen 13
J Können mehere Threads parallel eine Datei lesen? Java Basics - Anfänger-Themen 4
A Eine Datei Lesen und bestimmte Position überschreiben Java Basics - Anfänger-Themen 2
J Erste Schritte ExceptionError beim Lesen eines .ZIP Java Basics - Anfänger-Themen 19
B Javadoc richtig lesen... Java Basics - Anfänger-Themen 4
S Zeichen von Telnet lesen Java Basics - Anfänger-Themen 5
H Lesen einer Texdatei im Web Java Basics - Anfänger-Themen 10
J Input/Output Textdatei in einer JAR lesen Java Basics - Anfänger-Themen 3
G Konto-Historie speichern/lesen Java Basics - Anfänger-Themen 4
T Erste Schritte einzelne Wörter aus textdatei lesen... Java Basics - Anfänger-Themen 4
J Per I/O Streams in LinkedList oder ArrayList schreiben/lesen Java Basics - Anfänger-Themen 6
F Dateien lesen klappt nicht Java Basics - Anfänger-Themen 2
S Textdatei im Internet lesen und editieren Java Basics - Anfänger-Themen 2
S Input/Output aus Datei lesen Java Basics - Anfänger-Themen 6
N Variablen aus Action Listener lesen und weiterverarbeiten Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben