ArrayList duplicar un archivo de texto Curso de Programación Java

Lección:

Gestión Dinámica de Memoria


Ejercicio:

ArrayList duplicar un archivo de texto 8


Objetivo:

Cree un programa que lea desde un archivo de texto y lo almacene en otro archivo de texto invirtiendo las líneas.

Por lo tanto, un archivo de texto de entrada como:

ayer el Madrid
le ganó
al Barcelona

se almacenará en un archivo de texto de salida como:

al Barcelona
le ganó
ayer el Madrid


Código:

package TextFileInvert;
import java.util.*;
public class Main
{
	static void main(String[] args)
	{
		System.out.print("Introduce el nombre del fichero: ");
		String nombreArchivo = new Scanner(System.in).nextLine();

		if (!(new java.io.File(nombreArchivo)).isFile())
		{
			System.out.print("El archivo no existe!");
			return;
		}

		try
		{
			java.io.FileReader miArchivo;
		java.io.BufferedReader miArchivoBufferedReader = new java.io.BufferedReader(miArchivo);
			miArchivo = new java.io.FileReader(nombreArchivo);
			String line;

			ArrayList miLista = new ArrayList();

			do
			{
				line = miArchivoBufferedReader.readLine();
				if (line != null)
				{
					miLista.add(line);
				}
			} while (line != null);

			miArchivo.close();

			java.io.FileWriter miArchivoAlReves = new java.io.FileWriter(nombreArchivo + "-reverse.txt");

			int tamanyoArchivo = miLista.size();
			for (int i = tamanyoArchivo - 1; i >= 0; i--)
			{
				miArchivoAlReves.write(String.valueOf(miLista.get(i)) + System.lineSeparator());
			}

			miArchivoAlReves.close();

		}
		catch (RuntimeException e)
		{
			System.out.println("Error, " + e.getMessage());
		}
		new Scanner(System.in).nextLine();
	}
}