elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Java leer datos serializados
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Java leer datos serializados  (Leído 2,722 veces)
hubben

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Java leer datos serializados
« en: 3 Junio 2013, 11:57 am »

Buenas, mi problema es que al leer los datos serializados en java, no consigo encontrar la forma de buscar por sus palabras un dato de los que he metido, es decir,

Yo introduzco unos "Candidatos",  con un nombre, nif, telefono... , y lo que quiero es poder buscar una palabra de estos Candidatos y que unicamente me de el candidato serializado que contenga esa palabra

Yo busco : "juan"
Saldría : "Nombre : juan, NIF : 52554454K, telefono : 91678887878"


El trozo que tengo de código que he podido hacer es este :



  
Código:
  public static String CandidatoOficial() throws FileNotFoundException, UnsupportedEncodingException, IOException {
        String palabra = null;
        String cad;
        FileInputStream fis = new FileInputStream("candidatos.dat");
        InputStreamReader isr = new InputStreamReader(fis, "ISO-8859-1");
        BufferedReader br = new BufferedReader(isr);
        while ((cad = br.readLine()) != null) {
     //Nos dice si se encuentra, si es -1, no es encontrado
            if (cad.indexOf(BuscarCandidatos.jTextField2.getText().toString()) != -1) {
                palabra =  candidato.toString() + "    ,encontrado";
              }else {
                palabra = "No Encontrado ";
            }
        }
        return palabra;
    }

Si, me da todos valores del candidato, lo sé, no sé hacer la distinción.

Bueno, esa es mi duda, si alguien puede ayudarme...

Muchas gracias!



« Última modificación: 3 Junio 2013, 12:01 pm por hubben » En línea

RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: Java leer datos serializados
« Respuesta #1 en: 3 Junio 2013, 20:43 pm »

Así no se deserializa un objeto. En todo caso, existe la clase Candidato? O cómo estás metiendo todos los candidatos en el archivo .dat? Creo que estás confundiendo la serialización de un objeto on el almacenamiento de información en un archivo de texto.

Saludos


En línea

hubben

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Java leer datos serializados
« Respuesta #2 en: 3 Junio 2013, 21:25 pm »

Buenas,
si, si existe la clase Candidato

los estoy metiendo así :

Aclaraciones : CrearCandidato es una interfaz con jTextField, tenngo que guardar los datos que meto en ellos, y despues poder buscar en esos datos la palabra que quiero y mostrar unicamente a ese candidato

Citar
  public static boolean introducirCandidato() throws AgenciaException {
        Candidato can = new Candidato(CrearCandidatos.jTextField1.getText(), CrearCandidatos.jTextField2.getText(),
                Integer.parseInt(CrearCandidatos.jTextField3.getText()), Double.parseDouble(CrearCandidatos.jTextField14.getText()),
                Integer.parseInt(CrearCandidatos.jTextField15.getText()));

        //Introducimos lo introducido en el jtextField en un nuevo candidato
        candidato.put(nuevoCandidato, can);
        return true;
    }

     
Aclaracion : 'candidato' es un hashmap tal que así

Citar
static HashMap<String, Candidato> candidato = new HashMap<>();

 

Citar
 public static void serializar() {
        FileOutputStream fosPro;
        try {
            fosPro = new FileOutputStream("candidatos.dat");
            ObjectOutputStream oosPro = new ObjectOutputStream(fosPro);
            oosPro.writeObject(candidato);
            Integer cont = new Integer(Candidato.getContador());
            oosPro.writeObject(cont);

        } catch (FileNotFoundException ex) {
            Logger.getLogger(Candidato.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(Candidato.class.getName()).log(Level.SEVERE, null, ex);
        }
    }


Lo que pasa es eso, que se guardan, pero al buscarlos, no sé como hacerlo, quizás como tu digas que estoy confundiendo la deserializacion.

por ahí he leído que meta los datos en arrays también aparte de serializarlos para después que sea más facil buscarlos, pero también ando perdido en como leer unicamente un candidato con esto

Gracias, un saludo
« Última modificación: 3 Junio 2013, 21:30 pm por hubben » En línea

RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: Java leer datos serializados
« Respuesta #3 en: 4 Junio 2013, 07:38 am »

Así como al serealizar un objeto utilizas un ObjectOutputStream, para deserializar, usas un ObjectInputStream. Si serializas un HashMap, entonces al deserializar obtienes igualmente un HashMap (Exactamente no obtienes un HashMap, pero si un Object que se puede castear a HashMap).

Por ejemplo:
Código
  1.        FileInputStream fis = new FileInputStream("candidatos.dat");
  2.  
  3. HashMap candidatos = (HashMap) ois.readObject();
  4. ois.close();
  5.  

Ahora bien puedes iterar sobre los elementos del HashMap para realizar las operaciones requeridas.

PD: Ten en cuenta que para serializar corretamente un HashMap, todo su árbol (sus valores y llaves) deben ser completamente serializables.

Documentación: ObjectInputStream

Espero sea de ayuda.
Saludos
« Última modificación: 4 Junio 2013, 07:55 am por RyogiShiki » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Leer cabezeras ssl con java
Java
kabuto 2 2,502 Último mensaje 22 Mayo 2005, 10:57 am
por kabuto
Manejar archivo .txt desde java (ingresar datos, modificar datos, buscar datos y
Java
chuystoty 9 105,710 Último mensaje 20 Mayo 2012, 06:13 am
por ELMED
Problema al leer archivo en Java
Java
thekill01 1 2,526 Último mensaje 27 Mayo 2012, 03:02 am
por [Case]
[Aporte] Java-Leer cantidades (consola)
Java
Senior++ 2 2,754 Último mensaje 16 Julio 2012, 06:26 am
por hucruz
[Java] Consulta leer datos de Teclado
Java
Hater7- 2 2,082 Último mensaje 5 Enero 2017, 22:23 pm
por Hater7-
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines