Java - Guardar datos en variable y asignarlo a primer arreglo

   
Vista:

Guardar datos en variable y asignarlo a primer arreglo

Publicado por enrique (4 intervenciones) el 10/11/2015 01:57:29
Estoy haciendo un programa en donde por medio de herencia pedir la general de un empleado en un arreglo que tiene espacio de 3 posiciones arreglo[0], arreglo[1] y arreglo[2], o sea 3 empleados.
La primera vez que se corre el programa, al dar la opción salir, se debe guardar en un fichero solo la información de 1 empleado (no más de 1)
Al volver a correr el programa que se lea los datos de ese fichero en sus respectivas variables del primer objeto del vector, es decir, guardar en las variables del arreglo[0].
¿Cómo lo hago?
SOLO ME FALTA ESO.

subclase
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package plantilla;
public class pagodeempleado extends empleado{
    private double panual;
    private double pmensual;
    private int dependientes;
 
    pagodeempleado(String nombre, String nsocial, String fecha, int dpe, double pm, double pa)
    {
        super(nombre, nsocial, fecha);
        this.dependientes = dpe;
        this.pmensual = pm;
        this.panual = pa*12;
    }
 
 
    public double ObtenerPagoanual()
    {
        return pmensual * 12;
    }
 
    public void AsignarPagomensual(double pmensual)
    {
        this.pmensual = pmensual;
    }
    public double ObtenerPagomensual()
    {
        return pmensual;
    }
 
    public void AsignarDependientes(int dependientes)
    {
        this.dependientes = dependientes;
    }
    public int ObtenerDependientes()
    {
        return dependientes;
    }
 
 
}

CLASE DONDE TENGO EL PROBLEMA
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
package plantilla;
import javax.swing.JOptionPane;
import java.io.*;
public class Plantilla {
    public static void main(String[] args) {
        //empleado a = new empleado("","","");
        pagodeempleado [] b = new pagodeempleado[3];
        int opc=0, cant=0, dp;
        String texto, nombre, cedula, fecha, respuesta;
        double salmensual;
        String resp = null;
        String[] datos = {"Seleccione opción a realizar","Capturar la general del trabajador","Imprimir la general del trabajador","Salir y archivar la general del trabajador"};
        do{
           resp = (String) JOptionPane.showInputDialog(null, "******************************************\n BIENVENIDOS A NUESTRO SISTEMA\n******************************************\n\n\n", "MENU DE OPCIONES", JOptionPane.INFORMATION_MESSAGE, null, datos, datos[0]);
 
    if(resp.equalsIgnoreCase(datos[0])){
    opc=0;
    }
    if(resp.equalsIgnoreCase(datos[1])){
    opc=1;
    }
    else if(resp.equalsIgnoreCase(datos[2])){
        opc=2;
    }
    else if(resp.equalsIgnoreCase(datos[3])){
        opc=3;
    }
            switch(opc)
           {
               case 0:
                   break;
               case 1:
                   try{
                        do{
                            pagodeempleado temp = new pagodeempleado("","","",0,0,0);
                       texto = JOptionPane.showInputDialog("Ingrese nombre del trabajador: ");
                       nombre = texto;
                       temp.AsignarNombre(nombre);
                       JOptionPane.showMessageDialog(null, "Su nombre es "+temp.ObtenerNombre());
                       texto = JOptionPane.showInputDialog("Ingrese número de seguro social del trabajador: ");
                       cedula = texto;
                       temp.AsignarNsocial(cedula);
                       JOptionPane.showMessageDialog(null, "Su número de seguro social es "+temp.ObtenerNsocial());
                       texto = JOptionPane.showInputDialog("Ingrese fecha de contratación: ");
                       fecha = texto;
                       temp.AsignarFecha(fecha);
                       JOptionPane.showMessageDialog(null, "Su fecha de contratación fue "+temp.ObtenerFecha());
                       try{
                       texto = JOptionPane.showInputDialog("Ingrese el número de dependientes del trabajador: ");
                       dp = Integer.parseInt(texto);
                       temp.AsignarDependientes(dp);
                       //JOptionPane.showMessageDialog(null,"Su número de dependientes es "+b.ObtenerDependientes());
                       if(+temp.ObtenerDependientes()<=0){
                           throw new Exception("Numero igual a 0 o negativo");
                       }}catch(Exception e){
                           JOptionPane.showMessageDialog(null,"No se puede ingresar dependientes 0 o negativo","ERROR",JOptionPane.ERROR_MESSAGE);
                           texto = JOptionPane.showInputDialog("Ingrese el número de dependientes del trabajador: ");
                           dp = Integer.parseInt(texto);
                           temp.AsignarDependientes(dp);}
                       JOptionPane.showMessageDialog(null,"Su número de dependientes es "+temp.ObtenerDependientes());
                       texto = JOptionPane.showInputDialog("Ingrese salario mensual del trabajador: ");
                       salmensual = Double.parseDouble(texto);
                       temp.AsignarPagomensual(salmensual);
                       JOptionPane.showMessageDialog(null,"Su salario mensual es "+temp.ObtenerPagomensual());
                       b[cant] = temp;
                       cant++;
                       texto = JOptionPane.showInputDialog("¿Desea ingresar otro empleado al sistema?\nSi o NO");
                       respuesta = texto;
                        }while(respuesta.equalsIgnoreCase("si"));
                   }
                   catch(Exception ArrayIndexOutOfBoundsException){
                       JOptionPane.showMessageDialog(null,"Prohibido ingresar más de 3 usuarios");
                   }
                     break;
               case 2:
                   for(int i=0;i<cant;i++){
                   JOptionPane.showMessageDialog(null,"\n++ Nombre del trabajador:\n "+b[i].ObtenerNombre()+"\n\n++ Número de seguro social:\n "+b[i].ObtenerNsocial()+"\n\n++ Fecha de contratación:\n "+b[i].ObtenerFecha()+"\n\n++ Número de dependientes:\n "+b[i].ObtenerDependientes()+"\n\n++ Pago mensual:\n "+b[i].ObtenerPagomensual()+"$\n\n++ Pago anual:\n "+b[i].ObtenerPagoanual()+"$","GENERAL DEL TRABAJADOR",JOptionPane.INFORMATION_MESSAGE);
                   }
                     break;
               case 3:
 
                         File archivo = null;
                         //FileReader fr = null;
                         BufferedReader br = null;
                         FileWriter fichero;
                          try {
            archivo = new File ("C:\\Users\\USER\\Desktop\\archivo\\empleado.txt");        //URL donde se crea y ubica el archivo
            if(archivo.createNewFile()){                                                   //Sí archivo se crea
                JOptionPane.showMessageDialog(null,"Se ha creado un nuevo archivo.","ADVERTENCIA",JOptionPane.WARNING_MESSAGE);    //Se imprime el mensaje de creación
            }
 
        FileReader fr = new FileReader("C:\\Users\\USER\\Desktop\\archivo\\empleado.txt");
        //BufferedReader br = new BufferedReader(fr);
        br.readLine();
        br.readLine();
        texto =  br.readLine();
        temp.AsignarNombre(texto);
        JOptionPane.showMessageDialog(null, b[0].ObtenerNombre());
        //fw.write(texto);
        br.readLine();
        br.readLine();
        texto = br.readLine();
        b[0].AsignarNsocial(texto);
        JOptionPane.showMessageDialog(null, b[0].ObtenerNsocial());
        br.readLine();
        br.readLine();
        texto = br.readLine();
        b[0].AsignarFecha(texto);
        JOptionPane.showMessageDialog(null, b[0].ObtenerNsocial());
        //fw.write(texto);
        //fw.close();
        fr.close();
            //fr = new FileReader (archivo);                                                 //objeto utilizado para leer archivo
            //br = new BufferedReader(fr);                                                   //objeto para leer datos de archivos
            //String linea, todo;
            //while((linea = br.readLine())!=null){
            //linea += linea;
            //int x=0;
            //x++;
            //for(int i=0;i<x;i++){
            //todo = linea;
            //}
            //}
            //JOptionPane.showMessageDialog(null,todo);
            String textoaux[] = new String[3];
            fichero = new FileWriter("C:\\Users\\USER\\Desktop\\archivo\\empleado.txt",true);
            for(int i=0;i<cant;i++){
            textoaux[i] = ("----------------------------------------------\r\n\r\n+ Trabajador:\r\n "+b[i].ObtenerNombre()+"\r\n\r\n+ Número de seguro social:\r\n "+b[i].ObtenerNsocial()+"\r\n\r\n+ Fecha de ingreso a empleo:\r\n "+b[i].ObtenerFecha()+"\r\n\r\n+ Número de dependientes:\r\n "+b[i].ObtenerDependientes()+"\r\n\r\n+ Pago mensual de trabajador:\r\n "+b[i].ObtenerPagomensual()+"$\r\n\r\n+ Pago anaual de trabajador:\r\n "+b[i].ObtenerPagoanual()+"$\r\n");
            JOptionPane.showMessageDialog(null,textoaux[i]);
            fichero.write(textoaux[i]+"\r\n");
            }
            fichero.close();
            fichero.close();
 
        } catch (IOException ioex) {
            JOptionPane.showMessageDialog(null,"ERROR AL LEER ARCHIVO","ERROR",JOptionPane.ERROR_MESSAGE);
        }
                             JOptionPane.showMessageDialog(null, "No se ha añadido datos, por lo tanto no se creará archivo","SALIDA SIN ARCHIVO",JOptionPane.OK_OPTION);
                             JOptionPane.showMessageDialog(null, "Gracias por el ingreso a nuestro sistema.","SALIDA DE PROGRAMA",JOptionPane.INFORMATION_MESSAGE);
                     break;
 
           }}while(opc!=3);
    }
 
        }


así sale la información en el fichero:


+ Trabajador:
Enrique Batista

+ Número de seguro social:
12

+ Fecha de ingreso a empleo:
15

+ Número de dependientes:
4

+ Pago mensual de trabajador:
2.0$

+ Pago anaual de trabajador:
24.0$
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder