Hola...
En el caso de una lectura normal (no la clase Scanner), tienes un método en todos los InputStream que es available, que te indica cuántos bytes hay disponibles para lectura. En el caso en el que quieras leer todo lo que hay y pasar a otra cosa, puedes decirle que te lea todos los bytes disponibles en ese momento:
byte[] lectura = new byte [ myInputStream.available() ] ;
myInputStream.read(lectura);
En el caso del Scanner, va por tokens, lo que quiere decir que tienes que definir un separador (el normal es el espacio blanco).
Utiliza un bucle while (myScanner.hasNext()) para ir recogiendo los tokens, cuando hasNext()== false, ya habrás leído todo lo que hay disponible en el Scanner.
Espero que te sirva.
Un saludo.