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; } }