Cómo se usa FileInputStream en Java

Estoy tratando de entender el siguiente código del Java IO de Oreilly. Se supone que lee de un archivo y lo escribe en la consola:

try {
  FileInputStream fis = new FileInputStream("README.TXT"); 
  int n;     
  while ((n = fis.available()) > 0) {
    byte[] b = new byte[n];
    int result = fis.read(b);
    if (result == -1) break;
    String s = new String(b);
    System.out.print(s); 
  } // End while
} // End try
catch (IOException e) {System.err.println(e);}
System.out.println();

Mi pregunta es:

El availablemétodo encontrará la longitud máxima disponible de una vez, luego readse puede invocar el método para imprimirlo. Eso debe hacerse dentro de una llamada, ¿por qué el autor lo está haciendo en un whilebucle, verificando la disponibilidad continuamente?

Respuesta 1

Escuché que en Java 8 hay una flexibilidad de tener definiciones de funciones en una interfaz. Creo que podemos tener un estado predeterminado con esta función en todas las clases que están implementando tales ...

Supongamos que tengo el siguiente caso Clase principal y dos clases Secundarias, cada elemento secundario agrega un nuevo parámetro a los parámetros heredados del elemento primario. Ejemplo public class Parent {private int x; ...

Tengo un problema que estoy seguro de que la solución es tan fácil pero no puedo encontrarla. Tengo una ArrayList de ArrayLists más pequeñas. Esas listas contienen elementos de tipo String. Quiero fusionar el ...

Espero que me puedan dar algunos consejos para resolver mi problema. Necesito superponer muchas imágenes en un botón. Pero el problema es que esta es la imagen base (diente): (http://i.imgur.com/7tIcP.gif) mi primera imagen ...