Author Topic: Como escribir en un txt desde un listener?  (Read 175 times)

Dana

  • Newbie
  • *
  • Posts: 3
  • Karma: 0
    • View Profile
Como escribir en un txt desde un listener?
« on: Junio 16, 2020, 01:33:51 am »
Hola he creado una interfaz gráfica para crear usuarios y añadirlos a un txt. Introduzco todos los datos en la ventana crear estudiante, pero al pulsar en guardar no escribe el nuevo usuario en el txt.

Tengo creada las siguientes clases: Ventana en la que he creado la interfaz gráfica, aquí podemos ver, crear, eliminar o salir. Al pulsar en crear, se abre una nueva ventana para rellenar los datos personales del usuario. En la parte inferior se encuentra un botón para guardar. El problema es que no se almacena la información en el txt.

Code: [Select]
public class botonGuardarEstudianteActionListener implements ActionListener {

private Ventana ventana;
private String rutaFichero = "\\C:\\gestion\\datos.txt";

public botonGuardarEstudianteActionListener() {
    this.ventana = ventana;
}

@Override
public void actionPerformed(ActionEvent e) {

    String nombre= new String();
    String apellidos= new String();
    String email= new String();
    Sexo sexo= Sexo.HOMBRE; 
    EstadoCivil estadoCivil = EstadoCivil.SOLTERO;
    Calendar fechaNacimiento= new GregorianCalendar();;     

    String listEstudiantes;

    String dd, mm, aa;
    dd = mm = aa = "" ;             

    listEstudiantes = "No hay estudiantes creados"; 

    nombre = VentanaCrearEstudiante.getNombre();
    apellidos = VentanaCrearEstudiante.getApellidos();
    email = VentanaCrearEstudiante.getEmail();         

    if(nombre.length() == 0) {
        JOptionPane.showMessageDialog(ventana,
                "Debe Ingresar un estudiante",
                "Error Ingreso Datos", JOptionPane.INFORMATION_MESSAGE);       
    }
    else {

        if(VentanaCrearEstudiante.getSexo().equals("Hombre")) {
            sexo= Sexo.HOMBRE;
        }
        else {
            sexo= Sexo.MUJER;
        }

        if(VentanaCrearEstudiante.getEstadoCivil().equals("Soltero")) {
            estadoCivil = EstadoCivil.SOLTERO;
        }
        else if (VentanaCrearEstudiante.getEstadoCivil().equals("Casado")) {
            estadoCivil = EstadoCivil.CASADO;
        }
        else if (VentanaCrearEstudiante.getEstadoCivil().equals("Divorciado")) {
            estadoCivil = EstadoCivil.DIVORCIADO;
        }
        else {
            estadoCivil = EstadoCivil.VIUDO;
        }

        int control = 1;         

        if(control == 1) {
            JOptionPane.showMessageDialog(ventana,
                    listEstudiantes,  "Informacion", JOptionPane.INFORMATION_MESSAGE);                 
        }
        else {
            try {   
                Estudiante nuevoEstudiante = new Estudiante(control, nombre, apellidos, email, sexo, estadoCivil, fechaNacimiento);
                control = 1;
                int identificador;
                boolean existe = false;
                do {
                    identificador = getIdentificador();
                    for(Estudiante inmueb : ventana.listEstudiantes) {
                        if(inmueb.getIdentificador() == identificador) {
                            existe = true;
                        }
                    }
                    if(!existe) {
                        nuevoEstudiante.setIdentificador(identificador);
                        control = 0;
                    }
                }
                while(control == 1);

                ventana.escribirDatosDeSalida(String.format(nuevoEstudiante.toString())); 
                ventana.listEstudiantes.add(nuevoEstudiante);

            } catch(Exception ex) {
                System.out.println("Error: "+ex);   
            }
        }
    }       
}
private int getIdentificador()
{
    Random random = new Random();
    return random.nextInt(1000);
}
private void guardarEnFichero() throws FileNotFoundException, IOException {
    File fichero = new File(this.rutaFichero);
    FileOutputStream outFichero = new FileOutputStream(fichero);
    OutputStreamWriter escritor = new OutputStreamWriter(outFichero);
    for (Estudiante estudiante : listEstudiantes) {
        escritor.write(estudiante.lineaCsv() + "\n");
    }
    escritor.close();
}

 

ey