PDA

Visualizza la versione completa : BufferedInputStream


siapri
08-05-2002, 11:51
Salve a tutti.
Qualcuno mi sa spiegare come funziona un "BufferedInputStream" e come faccio a leggerlo?
Ho visto che c'e' un metodo read , me come parametro ha un array di Byte.
Come funziona?
Grazie a tutti

floyd
08-05-2002, 12:03
un BufferedInputStream permette di leggere molti byte per volta
alloca un array che si riempie dopo la lettura

se fai
bis = new BufferedInputStream(inputstream);
byte[] b = new byte[8];
bis.read(b, 0, 8);
b contiene i primi 8 byte del flusso

siapri
08-05-2002, 12:16
ok,
ma leggo solo 8 byte dello stream ? e se e' piu' lungo?

floyd
08-05-2002, 12:36
read(b, off, len);

b array di byte
off punto da cui comincia a scrivere i dati
len numero di byte da leggere

siapri
08-05-2002, 14:11
perdonami, ma forse mi sono espresso male.
Se l'input arriva da un file che apro per leggere, posso non sapere quanti byte contiene.
Se definisco un array di Byte di 8 byte, come faccio a prendere tutti i byte del file che leggo?

floyd
08-05-2002, 14:19
se non sai quanti dati sono scritti devi leggere un byte per volta

floyd
08-05-2002, 14:22
oppure leggi quanti byte si possono leggere con
int i = bis.available()

pippo75
08-05-2002, 14:33
puoi anche utilizzare il metodo read(), che legge un byte alla volta, e ciņ che legge te lo ritorna come un intero.
Se ha raggiunto la fine del file, torna un -1



mandi mandi

siapri
08-05-2002, 14:50
Grazie a tutti.
Ora ho capito come funziona
ciao

Loading