Streams con búfer
Aprenda sobre los streams con búfer: BufferedInputStream y BufferedOutputStream para una E/S de bytes eficiente.
Streams con búfer es una lección gratuita de Java Academy en CoddyKit. Esta es la lección 3 de 3. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Java Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Java Academy incluye 3 lecciones en total.
Introducción
Los streams con búfer aceleran la E/S de archivos. Agrupan muchas lecturas y escrituras pequeñas en operaciones más grandes.
Concepto de BufferedInputStream
BufferedInputStream envuelve un InputStream y lee bloques de bytes en memoria. La lectura es más rápida cuando se realizan muchas llamadas pequeñas.
Código: BufferedInputStream
Esto lee bytes de un archivo utilizando un búfer. La salida muestra los valores de los bytes separados por espacios.
public class Main {
public static void main(String[] args) {
java.nio.file.Path p = java.nio.file.Paths.get("data.bin");
try (java.io.BufferedInputStream bis = new java.io.BufferedInputStream(java.nio.file.Files.newInputStream(p))) {
int b;
while ((b = bis.read()) != -1) {
System.out.print(b + " ");
}
} catch (java.io.IOException e) {
System.out.println("Error: " + e.getMessage());
}
}
}
Concepto de BufferedOutputStream
BufferedOutputStream acumula bytes en memoria antes de escribirlos. Esto reduce el número de escrituras en el disco.
Código: BufferedOutputStream
Esto escribe cinco bytes en out.bin. BufferedOutputStream vacía el búfer por bloques para mejorar la eficiencia.
public class Main {
public static void main(String[] args) {
java.nio.file.Path p = java.nio.file.Paths.get("out.bin");
try (java.io.BufferedOutputStream bos = new java.io.BufferedOutputStream(java.nio.file.Files.newOutputStream(p))) {
for (int i = 0; i < 5; i++) {
bos.write(i); // write 5 bytes
}
} catch (java.io.IOException e) {
System.out.println("Error: " + e.getMessage());
}
}
}
Código: copiar con streams con búfer
Los streams con búfer hacen que copiar archivos sea sencillo y eficaz. El archivo se lee y se escribe utilizando búferes de bytes.
public class Main {
public static void main(String[] args) {
java.nio.file.Path in = java.nio.file.Paths.get("data.bin");
java.nio.file.Path out = java.nio.file.Paths.get("copy.bin");
try (java.io.BufferedInputStream bis = new java.io.BufferedInputStream(java.nio.file.Files.newInputStream(in));
java.io.BufferedOutputStream bos = new java.io.BufferedOutputStream(java.nio.file.Files.newOutputStream(out))) {
int b;
while ((b = bis.read()) != -1) {
bos.write(b);
}
} catch (java.io.IOException e) {
System.out.println("Error: " + e.getMessage());
}
}
}
Comprobación de streams con búfer
Comprobación rápida: ¿Por qué se utilizan BufferedInputStream o BufferedOutputStream?
Repaso
Repaso: Los streams con búfer mejoran el rendimiento al agrupar lecturas y escrituras pequeñas en operaciones más grandes.
Preguntas frecuentes
¿La lección «Streams con búfer» es gratis?
Sí — el texto completo de «Streams con búfer» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Java Academy, actualiza a CoddyKit PRO. El curso de Java Academy incluye 3 lecciones en total.
¿Qué aprenderé en «Streams con búfer»?
Aprenda sobre los streams con búfer: BufferedInputStream y BufferedOutputStream para una E/S de bytes eficiente. Practicas Java Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Java Academy?
No se requiere experiencia previa. Java Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 3.
¿Cuánto tiempo toma la lección «Streams con búfer»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Java Academy?
Sí. Cada lección de Java Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Path/Files de java.nio.file
- Lectura/escritura de archivos de texto
- Streams con búfer