Autor Tema: Java diferencia entre InputStream y BufferedInputStream método read  (Leído 10405 veces)

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Hola

InputStream es una clase abstracta public abstract class InputStream con un método read() previsto para leer un byte de a cada vez desde un fichero

BufferedInputStream no es abstracta, es una clase concreta, por tanto puedes crear instancias de esta clase. Su método read devuelve un byte de a cada vez pero mantiene un buffer donde va acumulando los bytes internamente.

La clave en las clases que comienzan con Buffered es que usan un buffer, digamos que una memoria interna que normalmente hace que esas clases sean más eficientes, es decir, es esperable que BufferedInputStream sea más rápida que las otras implementaciones de InputStream. La idea sería: un InputStream normal tiene que estar llamando y accediendo al sistema operativo para cada byte que quiera devolver y esto consume cpu y es ineficiente. En cambio un BufferedInputStream llama al sistema operativo una vez y recolecta un array de bytes. Cuando se le pide read() ya no tiene que acceder al sistema operativo, sino que devuelve la información de su buffer interno. En algún momento el buffer interno se agota, pero mientras esto ocurre se han ahorrado un montón de procesos.

Salu2

Lorenzo31

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 381
    • Ver Perfil
Re:Java diferencia entre InputStream y BufferedInputStream método read
« Respuesta #1 en: 22 de Septiembre 2015, 10:01 »
Así la función read(), lee byte a byte de forma que se puede hacer algun tipo de bucle.

Buffered guarda en memoria, ok interesante aporte, ya distingo algo más cuando vea Buffered en alguna clase.

Gracias Ogramar.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".