package iesthiar;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class Ejercicio_B3 {

    public static void main(String[] args) {
        try (Scanner in = new Scanner(System.in);) {

            String strOrigen;
            String strDestino;

            // Pedimos nombres de ficheros para leer y escribir
            System.out.print("Fichero a leer: ");
            strOrigen = in.nextLine();
            System.out.print("Fichero a escribir: ");
            strDestino = in.nextLine();

            // Creamos los File
            File fileOrigen = new File(strOrigen);
            File fileDestino = new File(strDestino);

            // Comprobamos si el archivo de origen existe
            if (!fileOrigen.exists()) {
                throw new FileNotFoundException();
            }

            // Objetos para lectura y escritura
            // Scanner reader = new Scanner(fileOrigen);
            String lectura;
            try (FileInputStream fis = new FileInputStream(fileOrigen);
                    InputStreamReader isr = new InputStreamReader(fis);
                    BufferedReader reader = new BufferedReader(isr);
                    FileWriter writer = new FileWriter(fileDestino);) {
                // Leemos el fichero de origen y almacenamos todo en un ArrayList
                ArrayList<String> nomPersonas = new ArrayList<>();
                while ((lectura = reader.readLine()) != null) {
                    nomPersonas.add(lectura);
                }

                // Ordenamos el ArrayList
                Collections.sort(nomPersonas);

                // Recorremos el ArrayList y vamos escribiendo en el fichero de destino
                for (String nom : nomPersonas) {
                    writer.write(nom + "\n");
                }

                System.out.println("El fichero " + fileDestino.getName() + " ha sido creado correctamente");

            }

        } catch (FileNotFoundException e) {
            System.out.println("Error: El fichero no existe");
        } catch (Exception e) {
            System.out.println("Error: " + e);
        }
    }
}
