Foros del Web » Programación para mayores de 30 ;) » Java »

guardar y cargar un arraylist

Estas en el tema de guardar y cargar un arraylist en el foro de Java en Foros del Web. estoy haciendo un arraylist de personas, al momento de hacer una persona creo un objeto persona, mi problema es q no se como hacer para ...
  #1 (permalink)  
Antiguo 02/02/2013, 03:20
 
Fecha de Ingreso: julio-2012
Ubicación: en mi casa
Mensajes: 37
Antigüedad: 11 años, 8 meses
Puntos: 0
Exclamación guardar y cargar un arraylist

estoy haciendo un arraylist de personas, al momento de hacer una persona creo un objeto persona, mi problema es q no se como hacer para q toda esa informacion del arraylist se guarde en un archivo de texto, y posteriormente cargar el archivo de texto y volverlo a poner dentro del arraylist...

he visto cosas muy vagas de usar el objectinputstream y el objectoutputstream, pero la verdad no se ni como usarlos...

me podrian ayudar?

les dejo mi codigo:

Código:
class MiSistema
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sistema;
import java.util.ArrayList;
import java.util.Iterator;


/**
 *
 * @author Daniel Chavez
 */

import javax.swing.*;



public class MiSistema implements Iterable<Persona>{

 //Constructor: se inicializa el ArrayList para usuarios (Sin tamaño)
public MiSistema() {
	array=new ArrayList<Persona>();
}

@Override
public Iterator<Persona> iterator() {
    return array.iterator();
}


public void registrarPersona(MiSistema sistema){
    String nombre = JOptionPane.showInputDialog("Deme su nombre");
    String edad = JOptionPane.showInputDialog("Deme su edad");
    String sexo = JOptionPane.showInputDialog("Deme su sexo \n"
                                             + "[1] Masculino"
                                             + "[2] Femenino");
    int sex = Integer.parseInt(sexo);
    
    if (sex == 1){
        sexo = "Masculino";
    }
    else if(sex == 2){
        sexo = "Femenino";
    }
    
    String ocupacion = JOptionPane.showInputDialog("A que se dedica?");
    
    int anos = Integer.parseInt(edad);
    	
    array.add(new Persona(nombre,anos,sexo,ocupacion));
    
    imprimir(sistema);
    
}

public void eliminarPersona(MiSistema sistema){

    String numero = JOptionPane.showInputDialog("Inserte el numero del registro "
                                                + "que desea eliminar");
     int num = Integer.parseInt(numero);
     int tamano = array.size() - 1;
     
     if (tamano >= 0){
     num = num - 1;
     array.remove(num);
     }
     else{
         JOptionPane.showMessageDialog(null,"No hay personas que eliminar");
     }
     imprimir(sistema);
}

public void cargarArchivo(){

    System.out.print("carga\n");

}

public void guardarArchivo(){

    System.out.print("guarda\n");

}

public void imprimir(MiSistema sistema){
    int i = 1;
    Iterator<Persona> it=sistema.iterator();

                /* El Iterador tiene un metodo hasNext(), indica que mientras
                    haya un elemento adelante en el ArrayList, el ciclo continua
                  */
		while (it.hasNext()){

                /*No se necesita casting (El iterador es tipo usuario)
                   Se imprime como cadena puesto que se sobreescribió el método
                   toString() de la clase usuario;
                 */
                        System.out.print("["+ i +"] ");
			System.out.println(it.next());
                        i++;
        }
                
}

private ArrayList<Persona> array;

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        int op = 0;
        MiSistema sistema = new MiSistema();
        
        
        while(op != 5){
           String opc = JOptionPane.showInputDialog("[1] Crear nueva persona\n"
                                        + "[2] Eliminar persona\n"
                                        + "[3] Guardar archivo\n"
                                        + "[4] Cargar Archivo\n"
                                        + "[5] Salir\n");
            
            op = Integer.parseInt(opc);
            
            if (op == 1){
                sistema.registrarPersona(sistema);
            }
            
            else if (op == 2){
                sistema.eliminarPersona(sistema);
            }
            
            else if (op == 3){
                sistema.guardarArchivo();
            }
            
            else if (op == 4){
                sistema.cargarArchivo();
            }
            
            else if (op >= 6){
                op = 0;
            }
            
        }
        
        
    
    
    }
}
Código:
class persona
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sistema;

/**
 *
 * @author Daniel Chavez
 */
public class Persona {
    
    private String nombre;
    int edad;
    private String sexo;
    private String ocupacion;
  
    
    public Persona(){
    
    }
    
    public Persona(String nombre, int edad, String sexo, String ocupacion){
    
        getNombre(nombre);
        getEdad(edad);
        getSexo(sexo);
        getOcupacion(ocupacion);
        
        //toString();
        //toXML();
        
    }
    
    
    private String setNombre(){
        return nombre;
    }
    
    private void getNombre(String nombre){
        this.nombre = nombre;
    }
    
    private int setEdad(){
        return edad;
    }
    
    private void getEdad(int edad){
        this.edad = edad; 
    }
    
    private String setSexo(){
        return sexo;
    }
    
    private void getSexo(String sexo){
        this.sexo = sexo;
    }
    
    private String setOcupacion(){
         return ocupacion;
    }
    
    private void getOcupacion(String ocupacion){
       this.ocupacion = ocupacion;
    }
    
  
    @Override
    public String toString(){
        String registro;
        
        registro = setNombre() + " " + setEdad() + " " + setSexo() + " " + 
                   setOcupacion() + " " + toXML();
        
       
        
        return registro;
    }
    
     public String toXML(){
        
         String XML = "<Persona><Nombre>" + setNombre() + "</Nombre>"
                    + "<Edad>" + setEdad() + "</Edad><Sexo>" + setSexo()
                    + "</Sexo><Ocupacion>" + setOcupacion() + "</Ocupacion>"
                    +"</Persona>\n";
         
         
         return XML;
        
    }
    
}

Etiquetas: arraylist, objetos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:48.