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