Ya vimos en su momento como podemos leer un fichero de texto en Java. Pero como podemos hacer si queremos de forma inversa, es decir, leer fichero al revés con Java.
El funcionamiento para leer fichero al revés con Java es muy parecido al de leerlo de forma normal. Y es que el procedimiento será leerlo normalmente, almacenar su contenido en una lista y finalmente recorrer la lista de forma inversa para poder conseguir el efecto inverso.
Así que lo primero será leerlo mediante un FileReader
almacenándolo en un BufferedReader
.
FileReader fr = new FileReader("resources/fichero_lineas.txt");
BufferedReader bf = new BufferedReader(fr);
Ahora vamos a crear una lista. En este caso vamos a utilizar una lista enlazada o LinkedList
, ya que nos ayudará a la hora de recorrerla de forma inversa.
LinkedList list = new LinkedList();
Las lecturas de las líneas las hacemos mediante el método .readLine()
y las insertamos en la lista mediante el método .add()
.
LinkedList list = new LinkedList();
FileReader fr = new FileReader("resources/fichero_lineas.txt");
BufferedReader bf = new BufferedReader(fr);
String sCadena;
while ((sCadena = bf.readLine())!=null) {
list.add(sCadena);
}
Ahora ya tendremos todo el contenido del fichero perfectamente almacenado en la lista enlazada. Así que solo nos quedará recorrerla de forma inversa.
Para recorrerla de forma inversa vamos a utilizar un .descendingIterator()
, es decir un iterador que va desde el final al principio.
Iterator it = list.descendingIterator();
Y mediante un bucle vamos moviendo el iterador y mostrando el contenido.
while(it.hasNext())
System.out.println(it.next());
De esta forma ya habremos conseguido leer fichero al revés con Java.