(Lectura / Escritura ) fichero de texto

rasape
14 de Agosto del 2005
Hola a [email protected]

Tengo un fichero de texto que es donde guardo objetos de tipo Persona(String telefono, String nombre)

el problema es que no se que metodo usar para guardarlos tal cual en el fichero, ni para leer el fichero y guardar

cada uno de los objetos en un ArrayList.

Por el momento me gustaria que la clase Persona no fuera Serializable, ni utilizar tokenizers

Gracias.

Cristian
14 de Agosto del 2005
Primero quiero decirte que la forma mas facil de guardar un objeto en un fichero es serializandolo y lo segundo es te envio una clase pero esta es con JList si tienes algun problema puedes utilizarla con ArrayList ha y lo otro es que con esta clase debes tener el archivo ya creado el .bat eso es todo

Espero que te sirva !
Saludos......

Cristian
14 de Agosto del 2005
package build;

import java.io.*;
import java.util.*;
import build.*;

public class Procesos{

//Empleado emp=new Empleado();
public Procesos(){}


//Metodo que uso para registrar al empleado
public void GuardaEmpleado(Empleado emple){
List lemple=new LinkedList();
FileOutputStream fos=null;
ObjectOutputStream oos=null;
File archivo=new File("Empleado.bat");
// aqui se serializa el archivo
try{
ObjectInputStream objin = new ObjectInputStream(new FileInputStream("Empleado.bat"));
if(objin!=null){
lemple=(List)objin.readObject();
}
}catch(Exception ex){System.out.println("Error al cargar");}

// aqui se deserializa el archivo
try{
fos=new FileOutputStream(archivo);
oos=new ObjectOutputStream(fos);

String cedu=emple.getCedula();

lemple.add(emple);
oos.writeObject(lemple);
oos.close();
fos.close();

}catch(Exception ex ){System.out.println("Error5");}

}

// Metodo empleado para buscar en el archivo si este esta creado o no
public boolean empleadoCreado(String cedu){
List lista =new LinkedList();
try{
lista=(List)this.TodosEmpleado();

Iterator it=lista.iterator();
while(it.hasNext()){
Empleado employ=(Empleado)it.next();
if(employ.getCedula().equals(cedu))
return true;
}
}catch(Exception ex){System.out.println("Error1");}
return false;

}

//Metodo para buscar a los empleados
public Empleado FindEmpleado(String cedula)throws IOException{
List lista=new LinkedList();
boolean esta=false;
Empleado emp=new Empleado();

try{
lista=(List)this.TodosEmpleado();
Iterator it=lista.iterator();
while(it.hasNext()){
Empleado empl=(Empleado)it.next();
if(empl.getCedula().equals(cedula)){
emp.setNombre(empl.getNombre());
emp.setCargo(empl.getCargo());
emp.setHerramientas(empl.getHerramientas());
emp.setHoras(empl.getHoras());
return emp;
}
}
}catch(Exception ex){System.out.println("Error2");}
return null;
}

public List TodosEmpleado(){
List lista=new LinkedList();
try{
ObjectInputStream objin = new ObjectInputStream(new FileInputStream("Empleado.bat"));
if(objin!=null){
lista=(List)objin.readObject();
}
}catch(Exception ex){System.out.println("Error al cargar lista");}
return lista;
}

public void ModificaEmpleado(Empleado empleado){
Empleado em=new Empleado();
FileOutputStream fos;
ObjectOutputStream oos;
File archivo=new File("Empleado.bat");
boolean esta=false;
List lista=new LinkedList();

List lemp=(List)this.TodosEmpleado();
try{
fos=new FileOutputStream(archivo);
oos=new ObjectOutputStream(fos);

Iterator it=lemp.iterator();
while(it.hasNext()){

em=(Empleado)it.next();
if(!empleado.getCedula().equals(em.getCedula()))
lista.add(em);
}

try{
FileOutputStream di=new FileOutputStream("Empleado.bat");
ObjectOutputStream datos=new ObjectOutputStream(di);
datos.writeObject(lista);
datos.flush();
datos.close();
di.flush();
di.close();
}catch(Exception ex){System.out.println("Error8");}

this.GuardaEmpleado(empleado);

}catch(Exception ex){System.out.println("Error9");}

}

}