Input/Output Zeilen werden "ignoriert" beim Einlesen aus einer Textdatei

darkwall

Aktives Mitglied
Hallo,

ich habe ein merkwürdiges Problem:
Ich habe ein Programm, welches mittels folgendem Code eine Textdatei einlesen soll:
Java:
  public ArrayList leseDatei(String dateiname, String charset) {        
        ArrayList temp = new ArrayList();
        try {
            File datei = new File(dateiname);
            if (datei.exists()) {
        
                FileInputStream fis = new FileInputStream(datei);
                InputStreamReader isr = new InputStreamReader(fis, charset);
                BufferedReader fr = new BufferedReader(isr);
        
                int i = 0;
                String zeile;
                while ((zeile = fr.readLine()) != null) {
                    temp.add(zeile);
                    i++;
                }
                fr.close();
            } else {
                // "Datei existiert nicht!"
            }
        } catch (IOException e) {
            System.out.println("FEHLER: " + e);
        }
        return temp;
    }
Das komische ist, dass bei mir am Rechner alles glatt läuft, bei einem Bekannten jedoch mit exakt derselben Textdatei einige wenige Zeilen "verschluckt" werden. Es kommt keine Exception oder ähnliches? Ich habe keine Idee, woran das liegen kann. :noe:

Jemand von euch?

Viele Grüße!
 
Zuletzt bearbeitet:
Hi,
Du übergibst beim InputStreamReader ein Parameter charset. Bist du sicher, das das Characterset das selbe ist (utf-8, Unicoode, ASCII etc.) Wenn dies nicht gleich ist, wie in der text- datei. kann carrige return & newline für den InputStreamReader nicht korrekt funktionieren. Auf beiden Systemen muss das charset für die Datei gleich sein.
Dies kann zb auftreten, wenn ein UNIX text- File auf einem Windows System geöffnet wird. Dann stimmen die new line & carrige return nicht überein.
Bei windows wird in einem txt- File meist ein \r\n für eine neue Zeile erstellt. Bei UNIX (Linux) wird nur ein \n für eine neue Zeile dargestellt. Du kannst dies feststellen, wenn du mit einem Hex editor das textfile auf beiden Systemen anschaust. Wenn die Darstellung nicht gleich ist, dann muss im Editor, der das Text-file erstellt, das Characterset umgestellt werden.

gruss knilch
 
Zuletzt bearbeitet:
Da in deinem Snippet nichts ausgegeben wird, könnte das Problem im gesamten Quellcode versteckt sein. Oder wie will dein Bekannter beurteilen, dass die Datei nicht vollständig eingelesen wurde? Weil das Programm nicht das tut, was es soll?

So testet man das normalerweise:
- Textdatei so ändern, dass sie einmalig ist. (evtl. wird eine andere Datei gegriffen, als man denkt)
- Textdatei kopieren und an Bekannten schicken
- Auf beiden Rechnern ausführen

(Nicht nach dem Motto: "Ich habe solange getestet bis es bei mir ging und dann habe ich die Datei einfach weitergeschickt.")
 
Zuletzt bearbeitet:
Hallo...
... und vielen Dank für eure Antworten! Sorry für die späte Rückantwort!

Die von euch beschriebenen Fälle haben wir auch schon alle probiert gehabt.
Es lag vermutlich daran, dass die Datei, aus der gelesen werden sollte, auf einem Windows-Share lag.
Als die Datei lokal gespeichert war, funktionierte alles.
Trotzdem komisch...

LG
Darkwall
 

Neue Themen


Zurück
Oben