Escritura y lectura de archivos (Flujos)
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 5,96 KB
La escritura y lectura de archivos en Java se pueden realizar con un manejo muy similar al de salidas y entradas estándar. Java provee las siguientes clases:
- Para representar un archivo: File
- Para lectura y escritura en archivos de texto: FileReader, FileWriter
- Para lectura y escritura en bytes: FileInputStream, FileOutputStream
La clase File permite representar un archivo o directorio. Esta clase provee información acerca del archivo o directorio en disco. La clase File no abre archivos ni proporciona servicios para procesar archivos. Al crear un objeto de la clase File, es necesario indicar el nombre del archivo o su ruta. Si se proporciona el nombre, Java intentará encontrar el archivo en el directorio donde se ejecuta la aplicación de Java. La clase File pertenece al paquete java.io.
- Void File(String pathname): Constructor que crea un File abriendo el archivo especificado en el parámetro.
- boolean canExecute(): Retorna verdadero si la aplicación puede ejecutar el archivo denotado en la ruta del File.
- boolean canRead(): Retorna verdadero si la aplicación puede leer el archivo denotado en la ruta del File.
- boolean canWrite(): Retorna verdadero si la aplicación puede escribir en el archivo denotado en la ruta del File.
- int compareTo(File pathname): Compara la ruta del File con la del parámetro alfabéticamente. Si son iguales retorna 0.
- boolean createNewFile(): Crea un archivo vacío si el archivo con el nombre del File no existe.
- boolean delete(): Elimina el archivo denotado en la ruta del File.
- boolean exists(): Retorna verdadero si el archivo denotado en la ruta del File existe.
- File getAbsoluteFile(): Retorna la forma absoluta de la ruta del archivo.
- File getCanonicalFile(): Retorna la forma canónica de la ruta del archivo.
- String getName(): Retorna el nombre del archivo o directorio representado en el File.
- boolean isDirectory(): Retorna verdadero si la ruta que representa el File es un directorio.
- boolean isFile(): Retorna verdadero si la ruta que representa el File es un archivo.
- boolean isHidden(): Retorna verdadero si el archivo denotado en la ruta del File está oculto.
- long lastModified(): Retorna el tiempo en el archivo denotado en la ruta del File fue modificado.
- long length(): Retorna el tamaño en bytes del archivo denotado en la ruta del File.
- boolean mkdir(): Crea un directorio llamado con el nombre y ruta denotado en el File.
- boolean setReadOnly(): Establece como archivo de solo lectura el archivo denotado en la ruta del File.
- boolean setWritable(boolean writable): Establece como archivo escribible el archivo denotado en la ruta del File.
Escritura y lectura de archivos binarios (Flujos)
Un archivo binario o de datos está formado por secuencias de bytes. Estos archivos pueden contener datos de tipo básico (int, float, char, etc.) y objetos. Para poder leer el contenido de un archivo binario debemos conocer la estructura interna del fichero, es decir, debemos saber cómo se han escrito: si hay enteros, long, etc. y en qué orden están escritos en el archivo. Si no se conoce su estructura podemos leerlo byte a byte.
ESCRIBIR DATOS EN FICHEROS BINARIOS
Para escribir datos en un fichero binario utilizaremos las clases Java FileOutputStream y DataOutputStream derivadas de OutputStream.
La clase FileOutputStream permite tener acceso al fichero para escribir bytes. Para crear objetos FileOutputStream podemos utilizar los constructores: FileOutputStream (String ruta), FileOutputStream (File objetoFile), FileOutputStream (String ruta, boolean append), FileOutputStream (File objetoFile, boolean append). Si el parámetro append es true significa que los datos se van a añadir a los existentes. Si es false, los datos existentes se pierden. Si se utiliza uno de los dos primeros constructores, los datos existentes se pierden. Los constructores lanzan una excepción FileNotFoundException si no existe y no se ha podido crear el fichero. La clase FileOutputStream proporciona el método write() para escribir bytes en el fichero. Este método lanza una IOException.
La clase DataOutputStream, a partir de un objeto FileOutputStream, permite escribir datos de tipo primitivo en el archivo. Para crear un objeto DataOutputStream se utiliza el constructor: DataOutputStream(OutputStream nombre). La clase proporciona métodos writeXxx() donde Xxx es el nombre del tipo primitivo. Lanzan una IOException.
LECTURA DE FICHEROS BINARIOS
Para leer de un fichero binario utilizaremos las clases Java FileInputStream y DataInputStream derivadas de InputStream.
La clase FileInputStream permite leer bytes de un fichero. Para crear objetos FileInputStream podemos utilizar los constructores: FileInputStream (String ruta), FileInputStream (File objetoFile). Ambos lanzan una excepción FileNotFoundException si el fichero no existe. La clase proporciona el método read() para leer bytes del fichero. El método read lanza una excepción IOException.
La clase DataInputStream, a partir de un objeto FileInputStream, permite leer datos de tipo primitivo. Para crear un objeto DataInputStream se utiliza el constructor: DataInputStream (InputStream nombre). La clase proporciona métodos readXxx() donde Xxx es el nombre del tipo primitivo. Lanzan una excepción IOException. Cuando un método readXxx() alcanza el final del fichero, lanza una excepción EOFException.