Unterschiedliches Verhalten von BufferedReader

kodela

Bekanntes Mitglied
Hallo,

mit folgendem Code:
Java:
    File file = new File(path);
    if (file.exists()) {
        try (BufferedReader br = new BufferedReader(new FileReader(path))) {
            String zeile = br.readLine();                    // hier wird 'null' zurück gegeben
            StringBuilder sb = new StringBuilder();
                while (zeile != null) {
                    sb.append(zeile).append("\n");
                    zeile = br.readLine();
                }
            liste = sb.toString();
        }
    }
versuche ich, zwei reine Textdateien einzulesen. Dies gelingt mir jedoch nur bei einer, bei der zweiten wird nur null zurückgegeben.
Beide Dateien haben etwa die selbe Größe (2 KB). Bei der Datei, die eingelesen wird, sind es mehrere kurze Zeilen, bei der anderen gibt es weniger, aber sehr unterschiedlich lange Zeilen. Daran kann es aber doch nicht liegen.

Was kommt sonst noch in Betracht für dieses Verhalten?

kodela

PS:
Irgend wie ist es mir jetzt gelungen, auch die zweite Datei wird jetzt eingelesen. (Ich traue es mir fast nicht zu schreiben, im Namen der Problemdatei befand sich ein Bindestrich, den ich einfach einmal entfernt habe, selbstverständlich für die Datei und auch im Code. Klingt verrückt und ist doch auch verrückt.
Aber es gibt doch noch einen Unterschied, die Problemdatei ist nach dem Zugriff leer, Größe 0.
 
Zuletzt bearbeitet:
Da gibt es einige Moeglichkeiten. Kannst du die Dateien zeigen? Haben die die gleiche Enkodierung? Gleichen Zeilenenden? Du bist dir sicher dass du die richige Datei liest?
 
Aber es gibt doch noch einen Unterschied, die Problemdatei ist nach dem Zugriff leer, Größe 0.
Sicher, dass Du nicht noch anderen Code hast, der dafür verantwortlich ist? oder andere Tätigkeiten, die Du gemacht hast?

Das beschriebene Verhalten deutet auf eben genau diese Größe 0 hin. Du hast also eine Datei gelesen, die leer war, daher kamm sofort das null (Da keine Zeilen zu lesen da waren). Der gezeigte Code verändert keine Datei oder setzt die Länge auf 0.
 
Danke für Eure Hinweise!

Da hat offensichtlich alles, was Ihr so als mögliche Ursachen angesprochen habt, eine Rolle gespielt, vor allem eine leere Datei und auch eine falsche Codierung. Mittlerweile funktioniert aber wieder alles. Nur die deutschen Umlaute habe ich durch kryptischen Code ersetzt, bis ich bemerkt habe, dass ich nur mit ANSI zu kodieren brauche.

kodela
 

Zurück
Oben