Hola Stefania, espero que estés bien.
Estas son clases que pertenecen al paquetejava.oi
utilizadas para trabajar con archivos de tipo texto.
Los datos contenidos en estos archivos de tipo texto deben convertirse en flujos de bytes y transferidos a algún lugar, como un archivo,
por ejemplo.
- Texto >>> Bytes >>> Archivo
Los flujos de bytes se definen con el uso de dos jerarquías de clases, en la parte superior hay dos clases abstractas:
InputStream
que describe los flujos de entrada de bytes y OutputStream
.
FileInputStream
es una de las varias subclases concretas responsables del flujo de entrada para la lectura de un archivo:
FileInputStream fInputStream = new FileInputStream(new File(“C:\nombreArchivo.txt”));
//FileInputStream(String nombreArchivo)
//A váriavel nombreArchivo define o caminho do arquivo desejado abrir.
FileInputStream
busca el archivo en el directorio en el que se invocó JVM y alternativamente, se puede utilizar una ruta absoluta.
La traducción de los bytes con el encoding dado al respectivo código Unicode para recuperar un carácter que puede usar uno o más
bytes es tarea de la clase InputStreamReader
, es decir, escribe el decodificador.
class Prueba {
public static void main(String[] args) throws IOException {
InputStream inputStream = new FileInputStream("archivo.txt");
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
int i = inputStreamReader.read();
}
}
La clase Reader lee en trozos utilizando el búfer para evitar realizar muchas llamadas al sistema operativo.
- El tamaño del búfer se puede configurar por el constructor.
Y esa la composición de clases es conocida como Decorator Pattern:
class Prueba {
public static void main(String[] args) throws IOException {
InputStream inputStream = new FileInputStream("archivo.txt");
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String s = bufferedReader.readLine(); // primeira linha
while (s != null) {
System.out.println(s);
s = bufferedReader.readLine();
}
bufferedReader.close();
}
}
- Lectura de la primera línea del archivo;
- El método readline devuelve la línea leída y cambia el cursor a la siguiente línea;
- Si el método llega al final del Reader (en este ejemplo, final del archivo), devuelve null;
- Bucle creado para leer el archivo completo;
Ecordar que el paquete java.io tiene varios métodos que lanzan IOException del tipo checked - que obliga a tratarla o declararla.
Espero que haya ayudado. Más dudas, me aciones para que hablemos. =)
Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios.