Java OutputStream: Conceptos Principales, Métodos y Ejemplo Práctico con Archivos
Clase OutputStream de Java
Descubre los fundamentos de OutputStream de Java, sus métodos principales y un ejemplo práctico usando FileOutputStream.
La clase OutputStream, ubicada en el paquete java.io, es una superclase abstracta que representa un flujo de bytes destinado a un destino de salida. Como es abstracta, no puedes instanciarla directamente; en su lugar, confías en sus subclases concretas para realizar operaciones reales de I/O.
Subclases Clave de OutputStream
A continuación se muestran las subclases más utilizadas que extienden OutputStream:
FileOutputStream– escribe bytes directamente en un archivo.ByteArrayOutputStream– captura bytes en un array expansible, útil para operaciones en memoria.ObjectOutputStream– serializa objetos de Java en un flujo de bytes.
Exploraremos cada subclase en tutoriales dedicados.
Crear una Instancia de OutputStream
Para crear una instancia de OutputStream, importa el paquete e instancia una subclase concreta:
// Instanciar un FileOutputStream
OutputStream salida = new FileOutputStream("ejemplo.txt");
Como OutputStream es abstracta, siempre debes usar una subclase. El ejemplo anterior demuestra la creación de un flujo que escribe en ejemplo.txt.
Consejo: Puedes reemplazar FileOutputStream con cualquier otra subclase (ej., ByteArrayOutputStream) para apuntar a un destino diferente.
Métodos Principales de OutputStream
La clase abstracta declara varios métodos esenciales que sus subclases deben implementar:
write(int b)– escribe un solo byte en el flujo.write(byte[] b)– escribe un array de bytes completo.flush()– fuerza que cualquier dato en búfer se escriba.close()– libera recursos del sistema asociados con el flujo.
Ejemplo: Escribiendo Texto en un Archivo con FileOutputStream
A continuación se muestra un programa completo, listo para ejecutar, que escribe una línea de texto en output.txt usando FileOutputStream:
import java.io.FileOutputStream;
import java.io.OutputStream;
public class Main {
public static void main(String[] args) {
String datos = "Esta es una línea de texto dentro del archivo.";
try (OutputStream salida = new FileOutputStream("output.txt")) {
byte[] bytesDatos = datos.getBytes();
salida.write(bytesDatos);
System.out.println("Datos escritos en output.txt");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Puntos clave demostrados:
- Conversión de un
Stringa un array de bytes congetBytes(). - Escritura del array de bytes al flujo vía
write(). - Cierre automático del flujo usando un bloque try-with-resources, que llama a
close()por ti.
Después de la ejecución, output.txt contendrá:
Esta es una línea de texto dentro del archivo.
Para una exploración más profunda de OutputStream, consulta la documentación oficial de Java.
Java OutputStream (documentación oficial)
Java
- Palabra clave final en Java: Variables, métodos y clases
- Operador instanceof en Java: Guía completa
- Dominando la herencia en Java: Conceptos, tipos y ejemplos prácticos
- Entendiendo las clases anidadas estáticas en Java: Uso, diferencias y ejemplos
- Dominando las clases internas anónimas en Java: Definición, sintaxis y ejemplos prácticos
- Patrón Singleton en Java explicado: Cómo implementarlo y usarlo de forma segura
- Dominando la Reflexión en Java: Inspeccionando clases, métodos y campos en tiempo de ejecución
- Dominando ArrayList en Java: Operaciones, métodos y mejores prácticas
- Dominando ObjectOutputStream de Java: Serialización, Métodos y Ejemplos Prácticos
- Dominando Java Generics: Construyendo Código Reutilizable y Type-Safe
- Dominando las operaciones de archivos en Java con java.io: creación, lectura, escritura y eliminación