broke31 ha scritto:
salve ragazzi ho un problema non riesco a trovare il modo adatto per fare l'EOF in java in sostanza ho un file di tipo FileInputStream lo devo leggere fino alla fine ma non riesco a scorrerlo fino alla fine vado sempre a finire fuori range massimo come posso risolvere??
Che vuol dire?! Non puoi andare "oltre" la fine.
Se usi il read che legge 1 byte, torna -1 per EOF (sconsigliato se leggi direttamente dal FileInputStream). Se usi i read che ricevono un byte[], tornano -1 per EOF o comunque il numero di byte letti.
Sto pensando che magari stai leggendo a blocchi di byte, proprio con un byte[] di una certa dimensione prefissata da te. In questo caso
devi usare il valore di ritorno del read, perché l'ultimo blocco letto chiaramente può non riempire tutto. E se non lo consideri e prendi tutto il byte[], al fondo hai "spazzatura" (ciò che è rimasto dalla penultima lettura che aveva riempito tutto il buffer).