En este artículo voy a explicar cómo se manejan los ficheros en Java, más concretamente los ficheros binarios, que permiten trabajar con todo tipo de archivos como imágenes, PDFs, etc.
La clase File
La clase File representa un archivo o directorio. Para crear un objeto de la clase File le debemos pasar el nombre del fichero de nuestro sistema o la ruta absoluta. Si solo pasamos el nombre del archivo, para que Java reconozca ese archivo si lo queremos leer, debe estar en el directorio de trabajo. Mediante la ruta absoluta podemos leer cualquier fichero del sistema.
Las clases InputStream y OutputStream
La clase InputStream sirve para leer los bytes de los ficheros. La clase OutputStream para escribirlos. Son clases abstractas por lo que para crear instancias debemos utilizar algunas de las clases que las extienden. En mi caso utilizaré para los ejemplos FileInputStream y FileOutputStream.
Crear un InputStream a partir de un File
Este es el ejemplo más sencillo, ya que el constructor de la clase FileInputStream recibe un objeto de la clase File:
try { File file = new File(nombreFichero); InputStream inputStream = new FileInputStream(file); } catch (FileNotFoundException e) { System.out.println("Fichero no encontrado"); }
Crear un File a partir de un OutputStream
Esto nos permite escribir en un fichero los bytes contenidos en el OutputStream:
try { File file = new File(nombreFichero); OutputStream outputStream = new FileOutputStream(file); outputStream.write(bytes); } catch (FileNotFoundException e) { System.out.println("Fichero no encontrado"); } finally { outputStream.close(); }
Crear un File a partir de un InputStream
Esto nos permite leer un InputStream y escribirlo en un nuevo fichero.
try { InputStream inputStream = new FileInputStream(nombreFichero); OutputStream outputStream = new FileOutputStream(new File(nombreFichero)); int read = 0; byte[] bytes = new byte[1024]; while ((read = inputStream.read(bytes)) != -1) { outputStream.write(bytes, 0, read); } catch (FileNotFoundException e) { System.out.println("Fichero no encontrado"); } catch (IOException e) { System.out.println("Fallo al leer o escribir"); } finally { inputStream.close(); outputStream.close(); }
Esto ha sido todo. Espero que estos ejemplos de uso de ficheros en Java os ayude con vuestras aplicaciones.
El artículo Como Manejar Ficheros en Java apareció por primera vez en Instinto Binario.