Mit BufferedReader von FileInputStream lesen können

PAX523

Grünschnabel
Hallo Freunde.

Ich sitze jetzt schon stundenlang an einem scheinbaren Problem und finde einfach keine funktionierende Lösung.

Ich lese durch folgendes Konstrukt eine Datei ein:

Code:
        ...
        f = new BufferedReader(
                                new InputStreamReader(
                                          indexFile, 
                                          this.encoding));
				do {
					line = f.readLine();
        ...

indexFile ist hierbei ein FileInputStream der einst mit einem File-Objekt erstellt wurde, das auf eine wirklich existierende (und bisher auch zugreifbare) Datei zeigt. Ab dem ersten Aufruf von f.readLine() kommt es zu einer IOException ("read error"). Prüfe ich vorher mit f.ready(), ob ich aktuell was einlesen kann, liefert sie mir false zurück.

Also was will ich eigentlich:
  • Unbedingt Einlesen von InputStream, da es sich nicht unbedingt immer um einen FileInputStream handeln muss.
  • Die variable Zeichenkodierung muss beachtet werden.
  • Ich brauche eine readLine-Methode.

Was sagen die Meister zu dieser Problematik?

Vielen Dank für eure Hilfe.

Beste Grüße


PAX
 
Zuletzt bearbeitet:
Mir fällt gerade auf, dass dieser Fehler nur auftritt, wenn ich im Programmablauf die Datei mehr als 1 mal zum lesen öffne. Beim ersten Durchlauf (um an die Enkodierung zu kommen), kann ich problemlos einlesen. Muss ich noch irgendwo nach dem Einlesen etwas freigeben? Reicht close() nicht?
 
Im Grunde reicht close. Aber das close musst in jedem Fall ausgefürt werden, auch wenn ein Fehler auftritt. Wie stelltst du fest ob die Datei zu Ende ist?
 

Neue Beiträge

Zurück