Este tipo de flujos es el idóneo para el manejo de entradas y salidas de bytes, y su uso por tanto está orientado a la lectura y escritura de datos binarios.
Para el tratamiento de los flujos de bytes, Java tiene dos clases abstractas que son InputStream
y OutputStream
. Cada una de estas clases abstractas tiene varias subclases concretas, que controlan las diferencias entre los distintos dispositivos de E/S que se pueden utilizar.
class FileInputStream extands InputStream {
FileInputStream (String fichero) throws FileNotFoundException;
FileInputStream (File fichero) throws FileNotFoundException;
... ... ...
}
class FileOutputStream extends OutputStream {
FileOutputStream (String fichero) throws FileNotFoundException;
FileOutputStream (File fichero) throws FileNotFoundException;
... ... ...
}
OutputStream
y el InputStream
y todas sus subclases, reciben en el constructor el objeto que representa el flujo de datos para el dispositivo de entrada o salida.
Por ejemplo, podemos copiar el contenido de un fichero en otro: