Java - byte Array

yxy

Lieutenant
Registriert
Juli 2014
Beiträge
556
Hallo,

ich habe einen FileInputStream gegeben der in einen Puffer schreibt.
Code:
byte[] buffer = new byte[0x100];    //256 - 64 KB buffer

Ich frage mich nun was das Kommentar bedeuten soll.

Was ich schon rausgefunden habe:
0x100 ist hexadecimal und entspricht 256 decimal-->das byte-Array ist 256 bytes groß.

Aber was soll das 64 KB bedeuten? Hat jemand eine Idee?
 
es ist ein byte-Array. Also kann es mehrere Elemente enthalten. Ich interpretiere das so: Das Array kann maximal 64Kbyte fassen oder irgendwo puffern. 0x100 = 256, also ist es ein Array mit 256 Elementen. (0-255).

Aber wirklich weiß ich auch nicht, was damit ausgesagt werden soll. Da fehlt einfach der Kontext. Eine Codezeile von irgendwo her reicht da nicht aus
 
Hier noch die Methode:


Code:
    static void copyStreamToStream(FileInputStream fis, FileOutputStream fos) throws IOException {
        byte[] buffer = new byte[0x100];        //Byte Array mit 0x100(hex) = 256(dec) Bytes - 64 KB buffer
        int byteCount = 0;
        while (byteCount != -1) {
            byteCount = fis.read(buffer);       //ließt Chars in buffer ein (bis dieser voll ist) + gibt Zahl der eingelesenen Chars (bzw. wenn Ende Datei -1) zurück
            if (byteCount > 0) {                //D.h. wenn Chars eingelesen wurden
                fos.write(buffer, 0, byteCount);//schreibt Chars in buffer in Datei, 0=startet beim ersten Char, byteCount=schreibt so viele Chars in Datei
            }
        }
    }
 
Der Ersteller wollte damit wohl aussagen das der Buffer 256 Byte bis 64Kb sein kann.
Es ist eigentlich immer besser einen größeren Buffer zu nehmen, die Lese-Funktion liest ja soviel wie in das Array passt oder maximal bis Dateiende.
Wenn da große Dateien kopiert werden änder die Zeile in:
byte[] buffer = new byte[0x10000]; // 64 Kb Buffer

Dann geht das kopieren etwas schneller.
 
Zurück
Oben