Java - busqueda en un archivo

 
Vista:

busqueda en un archivo

Publicado por salvador (4 intervenciones) el 07/08/2007 03:24:16
hola bueno mi problema es el siguiente.
tengo que hacer un programa de reservacion de salas de computo.
en el cual tengo que crear un archivo en donde guarde los horarios y personas que reservaron, en eso ya no tengo problema ya esta el archivo.
el problema es el siguiente. como tengo que modificar esas citas una ves creadas, o ver si no hay citas encimadas, tengo que buscar dentro del archivo perono se como buscar dentro del el. espero me puedan ayudar. bueno en el archivo guardo lo que matricula, nombre de la persona, nombre de la sala, y horario. por estos atributos tengo que buscar. me nadicho que puedo guardar en ves de texto guardarlo como objeto y buscarlo como objeto espero me puedan ayudar gracias
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

RE:busqueda en un archivo

Publicado por angel (537 intervenciones) el 09/08/2007 08:54:21
Pues podrias usar el ObjectPutputStream para guardar los objetos en un fichero y luego leerlos con el ObjectInputStream, asi puede comparar su propiedades y coger l elemnto que desees.
Para ello, debes saber que si quieres guardar una clase n un fichero, esta debe implementar la interfaz java.io.Serializable.
Te dejo un ejemplo, con una clase, un metodo que escribe objeto de esa clase en un fichero y otro que los lee

class Persona implements java.io.Serializable
{
String nombre; int edad;
}

public void guardarPersonas()
{
try{
FileOutputStream fout = new FileOutputStream(new File("ArchivoPersonas"));
ObjectOutputStream ost = new ObjectOutputStream(fout);
Persona p = new Persona();
p.nombre="a";p.edad = 1;
ost.writeObject(p);
p = new Persona();
p.nombre="b";p.edad = 2;
ost.writeObject(p);
ost.flush();
ost.close();
fout.close();

}catch(Exception e)
{
e.printStackTrace();
}
}


public void leerPersonas()
{
try
{
FileInputStream fis = new FileInputStream("ArchivoPersonas");
ObjectInputStream ois = new ObjectInputStream(fis);
Object o = null;

while((o=ois.readObject())!=null)
{
if(o instanceof Persona){
Persona p = (Persona)o;
System.out.println("Persona:\n\tNombre:"+p.nombre+"\n\tEdad:"+p.edad);
}
}
ois.close();
fis.close();
}catch(EOFException eof) //No hay mas elementos.
{
}catch(Exception e)
{
e.printStackTrace();
}
}

Saludos
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

RE:busqueda en un archivo

Publicado por angel (537 intervenciones) el 09/08/2007 09:27:20
En realida el metodo de leer PErsona quedaria mejor asi, como no sabemos cuantas personas vamos a tener que leer, leeremos hasta que salte la excepcion controlada EOFException. (de hai el while(true)). Y con el finally nos aseguramos que se cierra l flujo d salida.

public void leerPersonas()
{
FileInputStream fis = null;
ObjectInputStream ois = null;
try
{
fis = new FileInputStream("ArchivoPersonas");
ois = new ObjectInputStream(fis);
Object o = null;

while(true)
{
o = ois.readObject();
if(o instanceof Persona && o !=null){ //Sea instancia d la clase Persona y no sea null
Persona p = (Persona)o;
System.out.println("Persona:\n\tNombre:"+p.nombre+"\n\tEdad:"+p.edad);
}
}

}catch(EOFException eof) //No hay mas elementos.
{
}catch(Exception e)
{
e.printStackTrace();
}finally
{
try{
ois.close();
fis.close();
}catch(Exception e){}
}
}

Saludos
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