Datei einlesen



  • Hallo

    ich möchte von einer Datei einlesen..
    bin jetzt soweit

    public byte[] blockLesen() throws IOException {
    FileInputStream in = new FileInputStream("File1");

    byte[] puffer = new byte[300];

    try{
    while(true){
    bytes =in.read(puffer);
    if (bytes == -1){
    break;
    }
    }
    }catch (Exception e) {}
    return puffer
    }

    main....
    while{
    byte [] puffer = blockLesen();
    ... puffer schreiben
    }

    so ich möchte das jetzt so umändern das ich solange das byte feld zurückgebe wie daten verhanden sind sind keine daten mehr vorhanden möchte ich return null; zurückgeben und das einlesen soll abgebrochen werden

    mfg
    g



  • Erstens ist es sehr schwer, einen Satz ohne Punkt und Komma lesen zu müssen. Zweitens ist dieser Ansatz schon mal richtig schlecht. Es wird die Datei durchlaufen, ohne dass die Daten irgendwie abgelegt würden. Dann wird eine Exception innerhalb der Operation abgefangen, obwohl die Methode eine IOException wirft. 😕

    Wenn blockLesen() immer den nächsten Block der Datei zurückgeben soll, wäre es von Vorteil, den InputStream beispielsweise außerhalb der Methode zu erzeugen und diesen dann als Parameter zu übergeben:

    public byte[] blockLesen(InputStream in)
       throws IOException
       {
         byte[] b = new byte[300];
    
         if (in.read(b) == -1)
          return null;
         else
          return b;
       }
    

Anmelden zum Antworten