Java - Usar la informacion guardada en la memoria ram

 
Vista:
sin imagen de perfil

Usar la informacion guardada en la memoria ram

Publicado por Marco Antonio (2 intervenciones) el 14/05/2018 05:31:13
Hola buenas a todos necesito saber como hacer un metodo para poder buscar informacion o registros que hice desde eclipse y que se guardaron en la memoria ram
Pasa que tengo un programa que registra pasajeros pero a la hora de salir y volver a entras ese registro si bien no se pierde si no que permanece en la memoria no me aparece en la lista de pasajeros como yo deseo
necesito saber como puedo mostras esos datos previamente guardados y que aparezcan en forma de lista

les dejo el programa para que le echen un ojo tambien cabe recalcar que muchos de los datos que mando a guardar no me guardan o me salen vacios



Clase Data

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
import java.io.FileNotFoundException;
import java.io.RandomAccessFile;
 
import javax.swing.JOptionPane;
 
import ProyectoPOO2.MiLibreria;
 
public class Pasajero {
    protected String identificacion;
    protected String nombre;
    protected String apellidos;
    protected String email;
    protected Long celular;
    protected int edad;
    RandomAccessFile ar;
 
    public Pasajero(String identificacion, String nombre,  String apellidos,String email, Long celular,int edad)    {
 
    	this.identificacion = "desconocido";
        this.nombre = "desconocido";
        this.apellidos = "desconocido";
        this.email = "desconocido";
        this.celular = celular;
        this. edad = 0;
    }
 
    public void SetIdentificacion(String identificacion)
    {
    	this.identificacion = identificacion;
    	}
    public void SetNombre(String nombre)
    {
    	this.nombre = nombre;
    	}
 
    public void SetApellidos(String apellidos)
    {
    	this.apellidos = apellidos;
    }
    public void SetEmail(String email)
    {
    	this.email = email;
    	}
    public void SetCelular(Long celular)
    {
    	this.celular = celular;
    	}
    public void SetEdad(int edad)
    {
    	this.edad = edad;
    	}
 
    public String getIdentificacion()
    {
    	return identificacion;
    	}
    public String getNombre()
    {
    	return nombre;
    }
    public String getApellidos()
    {
    	return apellidos;
    	}
    public String getEmail()
    {
    	return email;
    	}
    public Long getCelular()
    {
    	return celular;
    	}
    public int getEdad()
    {
    	return edad;
    	}
    public String getStringPasajero ()
    {
        String mensaje = "Información actual de pasajero: \n";
        mensaje = mensaje + "Identificacion: " + this.getIdentificacion()+"\n";
        mensaje = mensaje + "Nombre: " + this.getNombre()+"\n";
        mensaje = mensaje + "Apellidos: " + this.getApellidos() + "\n";
        mensaje = mensaje + "Email: " + this.getEmail() + "\n";
        mensaje = mensaje + "Celular: " + this.getCelular() + "\n";
        mensaje = mensaje + "Edad: " + this.getEdad() + "\n";
        mensaje = mensaje + "\n\n\n";
        return mensaje;
    }
 
}

Mando a traer a la clase data con contructos


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
public class Dialogo extends Pasajero{
RandomAccessFile ar;
    String dialogo;
    boolean ban=false;
    boolean ban2=false;
    public Dialogo(String identificacion, String nombre, String apellidos, String email, Long celular, int edad) {
        super(identificacion, nombre, apellidos, email, celular, edad);
        // TODO Apéndice de constructor generado automáticamente
    }
    Pasajero ob=new Pasajero(apellidos, apellidos, apellidos, apellidos, celular, edad);
 
    public int obtenerOpcionMenu()  {
        dialogo = "MENU DE PROGRAMA PASAJEROS\n";
        dialogo += "1.  Insertar pasajero\n";
        dialogo += "2.  Modificar pasajero\n";
        dialogo += "3.  Listar los pasajeros\n";
        dialogo += "4.  Guardar Pasajero ";
        dialogo += "5.  Eliminar pasajero\n";
        dialogo += "6.  Salir\n";
        dialogo += "Escoja Opción:\n";
        return Integer.parseInt(JOptionPane.showInputDialog(dialogo));
    }
 
    public String obtenerIdentificacionPasajero()  {
 
        this.SetIdentificacion(JOptionPane.showInputDialog("Ingresa La Identificacion del pasajero"));
        return this.getIdentificacion();
    }
 
    public String obtenerNombrePasajero()  {
        this.SetNombre(JOptionPane.showInputDialog("Ingresa Nombre"));
        return nombre;
    }
 
    public String obtenerApellidosPasajero() throws IOException {
        this.SetApellidos(JOptionPane.showInputDialog("Ingresa Apellido"));
        return this.getApellidos();
    }
 
    public String obtenerEmailPasajero() throws IOException {
        this.SetEmail(JOptionPane.showInputDialog("Ingresa correo"));
        return email;
 
    }
 
    public Long obtenerCelularPasajero() {
 
        boolean ban=false;
        do{
        try {
        this.SetCelular(Long.parseLong(JOptionPane.showInputDialog("Ingresa numero celular")));
        ban=true;
        }catch(Exception e)
        {
        JOptionPane.showMessageDialog(null, "NO es numero");
        }
    }	while(!ban);
        return celular;
 
 
    }
    public int obtenerEdadPasajero() {
        do{
        try {
        this.SetEdad(Integer.parseInt(JOptionPane.showInputDialog("Ingresa Edad Del pasajero")));
        ban2=true;
        }catch(Exception e)
        {
        JOptionPane.showMessageDialog(null, "NO es numero");
        }
    }	while(!ban2);
        return edad;
 
 
    }
 
    public void mostrarMensaje (String mensaje) {
        JFrame frame = new JFrame("Mensaje");
        JOptionPane.showMessageDialog(frame, mensaje);
    }
 
    public void cerrarPrograma () {
        JFrame frame = new JFrame("Final del programa");
        JOptionPane.showMessageDialog(frame, "Gracias por usar este programa. Fin");
        System.exit(0);
    }
 
    public void GuardarDisco2()
    {
        try { ar=new RandomAccessFile("agenda.dat","rw");
        ar.seek(ar.length());
        ar.writeBytes(this.getIdentificacion()+"\n");
        ar.writeBytes(this.getNombre()+"\n");
        ar.writeBytes(this.getApellidos()+"\n");
        ar.writeBytes(this.getEmail()+"\n");
        ar.writeBytes(this.getCelular()+"\n");
        ar.writeBytes(this.getEdad()+"\n");
        ar.close();
        }
        catch(FileNotFoundException e)
            {MiLibreria.Msje("Error");}
        catch(Exception e)
            {MiLibreria.Msje("Error");}
    }
 
 
    public void Imprimir2()
    {
        try {
            ar=new RandomAccessFile("agenda.dat","rw");
            while((this.nombre=ar.readLine())!=null)
            {
                this.apellidos=ar.readLine();
                this.identificacion=ar.readLine();
                this.celular=ar.readLong();
                this.email=ar.readLine();
                this.edad=ar.read();
                JOptionPane.showMessageDialog(null, "Identificacion"+this.getIdentificacion());
 
                JOptionPane.showMessageDialog(null, "Nombre "+this.getNombre());
 
                JOptionPane.showMessageDialog(null, "Apellidos "+this.getApellidos());
 
                JOptionPane.showMessageDialog(null, "Edad"+this.getEdad());
 
                JOptionPane.showMessageDialog(null, "Email "+this.getEmail());
 
                JOptionPane.showMessageDialog(null, "Celular "+this.getCelular());
 
            }
            ar.close();
        }
        catch(FileNotFoundException e)
        { JOptionPane.showMessageDialog(null, "Error");   }
        catch(Exception e)
        {JOptionPane.showMessageDialog(null, "Error");}
    }
 
 
}

Operaciones



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
public class algoritmoTest {
 
	RandomAccessFile ar;
 
	  int opcionEligeUsuario=0 ;
      ArrayList<Pasajero> listaDePasajeros = new ArrayList<Pasajero> ();
      Dialogo opcionesUsuario = new Dialogo(null, null, null, null, null, opcionEligeUsuario);
      Dialogo mensajeVent = new Dialogo(null, null, null, null,null, opcionEligeUsuario );
      Pasajero ob=new Pasajero(null, null, null, null, null, opcionEligeUsuario);
 
	public void calculos() throws IOException {
 
        while (opcionEligeUsuario != 5 ) {
 
            opcionEligeUsuario = opcionesUsuario.obtenerOpcionMenu();
 
            //Registrar la información de pasajero opción 1
            if (opcionEligeUsuario == 1) {
 
            	opcionesUsuario.obtenerIdentificacionPasajero();
                opcionesUsuario.obtenerNombrePasajero();
                opcionesUsuario.obtenerApellidosPasajero();
               opcionesUsuario.obtenerEmailPasajero();
                opcionesUsuario.obtenerCelularPasajero();
                opcionesUsuario.obtenerEdadPasajero();
                opcionesUsuario.GuardarDisco2();
                //Terminamos guardando el objeto pasajero
                listaDePasajeros.add( opcionesUsuario);
            }
            //Fin opción 1 registro información de pasajero
 
            //Modificar la información de un pasajero opción 2
            if (opcionEligeUsuario == 2) {
                String identPasajeroBuscado = opcionesUsuario.obtenerIdentificacionPasajero();
                boolean pasajeroEncontrado = false;
 
                Iterator<Pasajero> it = listaDePasajeros.iterator();
                Pasajero tmpAnalizando;
 
                while ( it.hasNext() ) {           //Utilizamos el método hasNext de los objetos tipo Iterator
 
                    tmpAnalizando = it.next();                //Utilizamos el método next de los objetos tipo Iterator
 
                    if (tmpAnalizando.getIdentificacion().equals(identPasajeroBuscado) ) {
                        pasajeroEncontrado = true;
                        String mensaje = tmpAnalizando.getStringPasajero();
                        mensaje = mensaje + "\n\n\n";
                        mensaje = mensaje + "A continuación introduzca nuevos datos para este pasajero";
 
                        mensajeVent.mostrarMensaje(mensaje);
 
                        // Aquí código para pedir nuevos datos para el pasajero
 
                        mensajeVent.mostrarMensaje("La identificación no puede ser modificada, indique resto de datos");
                       opcionesUsuario.obtenerNombrePasajero();
                       opcionesUsuario.obtenerApellidosPasajero();
                       opcionesUsuario.obtenerEmailPasajero();
                       opcionesUsuario.obtenerCelularPasajero();
                       opcionesUsuario.obtenerEdadPasajero();
 
                        mensaje = tmpAnalizando.getStringPasajero();
                        mensajeVent.mostrarMensaje(mensaje);
 
                    } else { }    //else vacío. No hay acciones a ejecutar.
 
                } //Cierre del while
 
                if (pasajeroEncontrado == false) {
                    mensajeVent.mostrarMensaje("No se encontró el pasajero con esa identificación");
                }
            } //Fin opción 2 registro información de pasajero
 
            //Opción 3 listar pasajeros
            if (opcionEligeUsuario == 3) {
 
                String listado = "";
 
                Iterator<Pasajero> it2 = listaDePasajeros.iterator();
                Pasajero tmpAnalizando;
 
                while ( it2.hasNext() ) {           //Utilizamos el método hasNext de los objetos tipo Iterator
                    tmpAnalizando = it2.next();                //Utilizamos el método next de los objetos tipo Iterator
                    listado = listado + tmpAnalizando.getStringPasajero();
                    listado = listado + "\n\n\n";
 
                } //Cierre del while
 
                mensajeVent.mostrarMensaje(listado);
 
            } //Fin opción 3 listar pasajeros
 
            //Eliminar un pasajero opción 4
            if (opcionEligeUsuario == 4) {
                String identPasajeroBuscado = opcionesUsuario.obtenerIdentificacionPasajero();
                boolean pasajeroEncontrado = false;
 
                Iterator<Pasajero> it = listaDePasajeros.iterator();
                Pasajero tmpAnalizando;
 
                while ( it.hasNext() && pasajeroEncontrado==false ) {           //Utilizamos el método hasNext de los objetos tipo Iterator
 
                    tmpAnalizando = it.next();                //Utilizamos el método next de los objetos tipo Iterator
 
                    if (tmpAnalizando.getIdentificacion().equals(identPasajeroBuscado) ) {
                        pasajeroEncontrado = true;
                        String mensaje = tmpAnalizando.getStringPasajero();
                        mensaje = mensaje + "\n\n\n";
                        mensaje = mensaje + "Se procede al borrado de datos de este pasajero\n\n";
 
                        mensajeVent.mostrarMensaje(mensaje);
 
                        // Aquí código para pedir nuevos datos para el pasajero
                        listaDePasajeros.remove(tmpAnalizando);
                        pasajeroEncontrado=true;
 
                    } else { }    //else vacío. No hay acciones a ejecutar.
 
                } //Cierre del while
 
                if (pasajeroEncontrado == false) {
                    mensajeVent.mostrarMensaje("No se encontró el pasajero con esa identificación");
                }
            } //Fin opción 2 registro información de pasajero
 
        }
 
        opcionesUsuario.cerrarPrograma();
 
    }
 
} //Cierra clase

principal



1
2
3
4
5
6
7
8
9
10
11
public class PrincipalP {
 
	public static void main(String[]args) throws IOException {
 
 
		algoritmoTest ob1=new algoritmoTest();
 
		ob1.calculos();
 
	}
}


Bueno lo que quiero hacer es que al momento de elegir la 3ra opcion me salga la lista de los pasajeros que se ingresaron anteriormente y estan guardados en la memoria y de ser possible saber si se pueden modificar esos datos o solo se mostrarian nadamas

algo que me pidieron que le agregara pero no encuentro solucion es seleccionar un pasajero y darlo de baja (tanto logica como fisica )osea baja temporal o permanente es algo que no se muy bien como hacerle

podrian ayudarme ya que no tengo una idea de como poder solucionar esos dos problemas
Los metodos de guardardisco e imprimir son los que tengo que usar para guardarlos en la memoria
y si bien me guardan no puedo hacer para mostrarlos o hacer un metodo para buscarlos
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
sin imagen de perfil

Usar la informacion guardada en la memoria ram

Publicado por Xibhu (19 intervenciones) el 25/05/2018 10:54:43
Algo básico que tendrían que haber enseñado antes de empezar a programar es cómo funciona un ordenador y cómo funciona un programa.

Cuando tú ejecutas por ejemplo un simple MAIN con:

int num = 5;
System.out.print(num);

Desde eclipse, desde terminal, desde donde sea, y se muestra, el programa empieza y acaba, y está en la memoria RAM, solo mientras está en ejecución, cuando un programa termina, se elimina automáticamente de la memoria RAM, es cosa de sistemas operativos, no de java ni nada.
Otra cosa es cómo se gestiona la visualización de resultados, por ejemplo el "5" se quedaría todo el rato en la terminal de eclipse, pero es eso, una visualización de lo que ha ocurrido, en ese momento el programa no existe, no está en ejecución. Por lo tanto eso que dices de salir y volver a entrar, y querer mantener las cosas en la RAM es completamente imposible. Tienes que usar una memoria intermedia, como un fichero.

A la hora de salir escribes los datos de las personas, o los objetos en un fichero, y a la hora de arrancar el programa lees ese fichero, y si hay datos rellenas el array.

Otra cosa que tienes mal es que en la clase "algoritmoTest" (Usa mayúsculas siempre) tienes las opciones del 1 al 4, y la 4 hace la función de borrar, mientras que al usuario muestras del 1 al 5 y la 4 es guardar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar