http://www.librosgratis.org
Un paréntesis de Entrada/Salida En Java hay muchas clases para leer y escribir archivos (u otros dispositivos de E/S). Están reunidos en la biblioteca java.io. Vamos a empezar como siempre con un pequeño ejemplo funcional y en seguida nos meteremos en el necesario camino de las excepciones...
Primera Lectura // archivo: Ejemplo9.java - compilar con "javac Ejemplo9.java", etc. etc. import java.io.*; public class Ejemplo9 { public static void main(String args[]) throws FileNotFoundException,IOException { FileInputStream fptr; DataInputStream f; String linea = null; fptr = new FileInputStream("Ejemplo9.java"); f = new DataInputStream(fptr); do { linea = f.readLine(); if (linea!=null) System.out.println(linea); } while (linea != null); fptr.close(); } } (Caramba! ¿Qué hace ese throws ahí?) El programa de ejemplo simplemente lee un archivo de texto y lo muestra en pantalla, algo así como el type del DOS o el cat de Unix. Dejemos por ahora el throws FileNotFoundException,IOException y vamos al código. fptr = new FileInputStream("Ejemplo9.java");
La clase FileInputStream (descendiente de InputStream) nos sirve para referirnos a archivos o conexiones (sockets) de una máquina. Podemos accederlos pasando un String como aquí, un objeto de tipo File o uno de tipo FileDescriptor, pero en esencia es lo mismo. Al crear un objeto de este tipo estamos "abriendo" un archivo, clásicamente hablando. Si el archivo no existe (por ejemplo reemplacen "Ejemplo9.java" por alguna otra cosa, como "noexiste.txt"), al ejecutarlo nos aparece un error: C:\java\curso>java Ejemplo9 java.io.FileNotFoundException: noexiste.txt at java.io.FileInputStream.<init>(FileInputStream.java:51) at Ejemplo9.main(Ejemplo9.java:9) (Caramba! ¿Dónde vi ese FileNotFoudException antes?) Justamente, cuando el archivo al que quiero acceder no existe, Java "lanza" una excepción. Esto es, un aviso de que algo falló y, si no se toma ninguna acción, detiene el programa. La clase FileInputStream puede "lanzar" (throws) la excepción FileNotFoundException.
Página 46