Nas,
si ya tienes el FileInputStream (o el Stream que sea) con cualquier
método read puedes saber si estás en el final, el resultado de los
read siempre es el número de bytes leidos o sea que si le pasas
un array de 1024 y el read te devuelve 200 es que ya estàs en el
final.
Espero haberme explicado
att. Xavi Canal