1 - Resumen Manejo de Ficheros Java PDF
1 - Resumen Manejo de Ficheros Java PDF
1 - Resumen Manejo de Ficheros Java PDF
ENTRADA/SALIDA ESTÁNDAR
Para la entrada y salida estándar tenemos varias clases que podemos emplear.
* Clase java.lang.System
· System.in implementa la entrada estándar
· System.out implementa la salida estándar
· System.err implementa la salida de error
* System.out
· Instancia de la clase PrintStream – flujo de bytes de salida
· Métodos de utilidad – impresión de datos
+ print(), println()
+ flush() vacía el buffer de salida escribiendo su contenido
* System.in
· Instancia de la clase InputStream – flujo de bytes de entrada
· Métodos
+ read() permite leer un caracter
+ skip(n) ignora n caracteres siguientes de la entrada
+ available() número de caracteres disponibles para leer en la trada
* System.err
· Funcionamiento similar a System.out
STREAMS
Los streams comparten una misma interfaz que hace abstracción de los detalles específicos
de cada dispositivo de E/S.
Representación de la información
+ Flujos de bytes
+ Flujos de caracteres
Propósito
+ Entrada – (InputStream, Reader)
+ Salida – (OutputStream, Writer)
+ Entrada / Salida – (RandomAccessFile)
Acceso
+ Secuencial
+ Directo o aleatorio – (RandomAccessFile)
Por operación
+ Transferencia de datos
+ Transformación de los datos (Realizan algún tipo de procesamiento sobre los
datos, por ejemplo buffering, conversiones, filtrados…)
Clases de archivo:
File y RandomAccessFile que permiten mayor control sobre los archivos.
InputStream
OutputStream
FileInputStream. Muy similar a la clase InputStream, sólo que está diseñada para leer
archivos.
FileInputStream(String name)
FileInputStream(File name)
FileOutputStream. Muy similar a la clase OutputStream, sólo que está diseñada para escribir
en archivos.
FileOutputStream(String name)
FileOutputStream(String name, boolean append)
· Si append = true queremos añadir al final del fichero
FileOutputStream(File name)
FileReader
FileWriter
LECTURA DE UN FICHERO DE TEXTO EN JAVA
Podemos abrir un fichero de texto para leer usando la clase FileReader. Esta clase tiene
métodos que nos permiten leer caracteres. Sin embargo, suele ser habitual querer las líneas
completas, bien porque nos interesa la línea completa, bien para poder analizarla luego y
extraer campos de ella. FileReader no contiene métodos que nos permitan leer líneas
completas, pero sí BufferedReader. Afortunadamente, podemos construir un
BufferedReader a partir del FileReader de la siguiente forma:
La apertura del fichero y su posterior lectura pueden lanzar excepciones que debemos
capturar. Por ello, la apertura del fichero y la lectura debe meterse en un bloque try-catch.
Además, el fichero hay que cerrarlo cuando terminemos con él, tanto si todo ha ido bien
como si ha habido algún error en la lectura después de haberlo abierto. Por ello, se suele
poner al try-catch un bloque finally y dentro de él, el close() del fichero.
El siguiente es un código completo con todo lo mencionado.
import java.io.*;
class LeeFichero {
public static void main(String [] arg) {
File archivo = null;
FileReader fr = null;
BufferedReader br = null;
try {
// Apertura del fichero y creacion de BufferedReader para poder
// hacer una lectura comoda (disponer del metodo readLine()).
archivo = new File ("C:\\archivo.txt");
fr = new FileReader (archivo);
br = new BufferedReader(fr);
Como opción para leer un fichero de texto línea por línea, podría usarse la clase Scanner en
vez de el FileReader y el BufferedReader.
import java.io.*;
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// Nuevamente aprovechamos el finally para
// asegurarnos que se cierra el fichero.
if (null != fichero)
fichero.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
}