Madre de un conjunto de clases para leer ficheros
carácter a carácter.
Java convierte los bytes que contiene el fichero
en caracteres Unicode.
Vea "codificación de los caracteres".
La clase derivada más habitual es
java.io.FileReader |
|
FileReader(File
file) |
constructor |
FileReader(String nombre) |
constructor |
Todas las clases derivadas de Reader proporcionan
estos métodos:
java.io.Reader |
|
void
close() |
cierra el fichero |
int
read() |
lee un carácter devuelve el carácter leído pasado a
entero devuelve –1 si el fichero se ha acabado |
int read(char[] chars) |
lee un número 'n' de caracteres igual o
menor que la longitud del array 'chars' devuelve el número de caracteres leídos; devuelve –1 si el fichero se ha acabado |
int read(char[] chars, int
start, int
n) |
lee un número 'n' de caracteres devuelve el número de caracteres leídos; devuelve –1 si el fichero se ha acabado |
Es habitual preparar un array de cierto tamaño,
pecando por exceso, para ir leyendo montones de caracteres. En cada caso
particular habrá que decidir cómo se van leyendo caracteres para hacer lo que
haya que hacerles. El ejemplo siguiente lee el fichero entero, devolviendo
todos los caracteres en una cadena:
/** * Lectura de todos los caracteres de un fichero. * * @param fichero nombre del fichero del que queremos leer. * @return todos los caracteres en el fichero. * @throws IOException si hay problemas al abrir o al escribir. */
public String leeTodosLosCaracteres(String fichero) throws IOException { StringBuilder buffer = new
StringBuilder(); Reader
reader = new FileReader(fichero); char[] chars = new char[1024]; while (true) { int n = reader.read(chars); if (n < 0) break; buffer.append(chars, 0, n); } reader.close(); return buffer.toString(); } |
Vea "BufferedReader"
para leer caracteres más deprisa y para leer línea a línea.
Reader lee caracteres (16 bits). Si necesita leer
bytes (8 bits), debe utilizar la clase InputStream.
Ver “File”, “InputStream”, “Writer.
Temas relacionados
Las Bibliotecas de Java
BufferedReader (clase) java.io.BufferedReader