Verstehe Code-Abschnitt nicht



  • InputStream is = new FileInputStream(f);                
            byte[] buffer = new byte[8192];
            int read = 0;
            try {
                while( (read = is.read(buffer)) > 0) 
                {
                    digest.update(buffer, 0, read);
                }       
                byte[] md5sum = digest.digest();
            }
    

    was macht die Zeile
    while( (read = is.read(buffer)) > 0)
    ?
    oder anders gefragt: was ist die abbruchbedingung?

    ich gehe davon aus, dass geprüft wird, ob noch zeichen eingelesen werden;

    aber ich verstehe nicht was
    read = is.read(buffer)
    zurückliefert.



  • Zuerst wird in der Schleifenbedingung der Rückgabewert von is.read(buffer) an read zugewiesen. Und zwar ist dieser Rückgabewert die Anzahl der Bytes die read() gelesen hat.

    Dancah wird überprüft ob der nun in read stehende Wert größer als 0 ist. Ist das nicht der Fall bricht die Schleife ab.

    MfG SideWinder



  • ups, da war ich mal ganz verpeilt....

    ich kann gar nicht mehr sagen was ich da nicht verstanden habe^^.

    Naja ich hatte an einer anderen Stelle einen Fehler und habe mein eigenes Wirrwarr nicht mehr kapiert 🙂


Anmelden zum Antworten