Link zu www.kneller-gifs.de

Dateien lesen

Dateizugriffe finden in Java über Datenströme (streams) mit Readern und Writern statt. Konkret genügt dafür z.B. ein FileReader. Durch das Puffern per BuffererReader wird das ganze optimiert. Beim BufferedReader wird die Lese-Performance erhöht, da nicht jedes Byte einzeln gelesen wird und sich somit die Anzahl der Lesezugriffe verringert.

Vorgehen beim Dateien lesen:

  • Input Stream anlegen (Datei öffnen) z.B. mit
    - FileReader f=new FileReader ("datei.txt") oder besser:
    - BufferedReader b=new BufferedReader (new FileReader("datei.txt"));
  • Ein Zeichen lesen mit int c = f.read()
  • Ganze Zeile lesen mit String s = f.readLine
    (beste Methode zum Lesen von Textdateien, benötigt BufferedReader())
  • Datei schliessen mit f.close
  • Es wird immer ein IOExceptionHandling mittels try-catch benötigt.

Datei zeichenweise lesen
  import java.io.*;
  public class Test {
    public static void main (String args[]) {
      int c;
      try {
        FileReader f = new FileReader("d:/test/test.txt");
        while((c = f.read()) != -1) { // liest zeichenweise int-Werte aus Datei bis -1 kommt
          System.out.print((char)c);  // wandelt int-Wert in char-Wert
        }
        f.close();
      }
      catch (IOException e) {
        System.out.println("Fehler: "+e.toString());
      }
    }
  }

Datei zeilenweise lesen
  import java.io.*;
  public class Test {
    public static void main (String args[]) {
      String zeile="";
      try {
        BufferedReader b = new BufferedReader (new FileReader("d:/test/test.txt") );
        while( (zeile = b.readLine()) != null ) { // liest zeilenweise aus Datei
          System.out.println(zeile);              // Ausgabe zeilenweise
        }
        b.close();
      }
      catch (IOException e) {
        System.out.println("Fehler: "+e.toString());
      }
    }
  }