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
| | | |-+  Error en lectura de Fichero
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error en lectura de Fichero  (Leído 7,521 veces)
Afsoon

Desconectado Desconectado

Mensajes: 130


Ver Perfil
Error en lectura de Fichero
« en: 1 Septiembre 2010, 17:59 pm »

Hola buenas, estoy aprendiendo a programar en java y estoy programando un proyecto que me mando mi hermano para ir aprendiendo, pero tengo un error que mas por darle vueltas no lo consiguo  resolver, se donde es y el porque pero no encuentro solucion, aqui teneis el codigo uno es para la lectura y otro para la escritura, el de la escritura esta bien me funciona a la perfeccion, el problema es el de la lectura y es la linea entre los chekpoint(para "depurar en ejecucio") 3 y 3.5 el error

Código
  1. public List<Entidad> obtenerVariasEntidades() {
  2. List<Entidad> entidad = new ArrayList<Entidad>();
  3. boolean est = false;
  4.    String opc;
  5.    try{
  6.    while(!est)
  7.    {
  8. System.out.println("\t Inserte el CIF que desee buscar");
  9.     String cif = b.readLine().trim().toUpperCase();
  10. Persona persona;
  11.     ObjectInputStream entrada = new ObjectInputStream(new FileInputStream(Constantes.FICHERO_PERSONAS));
  12. System.out.println("Checkpoing entrada 3");
  13. persona = (Persona) entrada.readObject(); //Este es el fallo lee un Object pero lo que inserte es un Array
  14. System.out.println("Checkpoing entrada 3.5");//pero si veis mas abajo esta guardado como un Object
  15.     while(persona != null)
  16.     {
  17.     if(persona.getCIF().equalsIgnoreCase(cif))
  18.     {
  19.     break;
  20.     }
  21.  
  22.     while(persona == null)
  23.     {
  24.     System.out.println("\t> No hay ninguna persona guardada con ese CIF.");
  25.     Principal.main(null);
  26.     break;
  27.     }
  28.     }
  29.  
  30. System.out.println("Checkpoing entrada 4");
  31. Entidad en = persona;
  32.     entidad.add(en);
  33.  
  34.     System.out.println("¿Desea buscar otra persona?");
  35.     opc = b.readLine().trim().toUpperCase();
  36.     if(opc.equals("SI"))
  37.     est = false;
  38.     if(opc.equals("NO"))
  39.     break;
  40.    }
  41.    }catch (IOException e) {
  42.     System.err.print(e.getMessage());
  43. } catch (ClassNotFoundException e) {
  44. System.err.print(e.getMessage());
  45. }
  46.    return entidad;
  47. }
  48.  
  49.  
  50. public void escribirVariasEntidades(List<Entidad> entidades) {
  51. entidades = new ArrayList<Entidad>();
  52. boolean est = false;
  53. while(!est){
  54. try{
  55. LeerEscribirEntidad lee = new LeerEscribirEntidad(b);
  56. Persona persona = lee.obtenerPersonaPantalla();
  57. Entidad en = persona;
  58. entidades.add(en);
  59. }catch(Exception e){
  60. System.err.println(e.getMessage());
  61. }
  62. try {
  63. ObjectOutputStream salida = new ObjectOutputStream(new FileOutputStream(Constantes.FICHERO_PERSONAS));
  64. salida.writeObject(entidades);//Aqui escribo en el archivo pero como un Object
  65. salida.close();
  66. } catch (IOException e) {
  67. e.printStackTrace();
  68. }
  69. System.out.println("\t ¿Desea insertar otro cliente?");
  70. System.out.println("\t Inserte si para otro cliente");
  71. System.out.println("\t Inserte no para salir");
  72. try {
  73. String s = b.readLine().trim().toUpperCase();
  74. if(s.equals("SI"))
  75. est = false;
  76. if(s.equals("NO"))
  77. est = true;
  78. } catch (IOException e) {
  79. e.printStackTrace();
  80. }
  81. }
  82.  
  83.  
  84. }
  85.  

El error cuando lo ejecuto:

Checkpoing entrada 3
java.util.ArrayList cannot be cast to es.practicasJava.lecturaFicheros.modelo.Persona

PD:He consultado en la api sobre read y nada y mirando en paginas y tampoco nada


En línea

Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: Error en lectura de Fichero
« Respuesta #1 en: 1 Septiembre 2010, 19:12 pm »

Intentas hacer un cast explicito de un array a una clase persona, y los tipos no son validos, por eso no va bien.

Saludos


En línea

Afsoon

Desconectado Desconectado

Mensajes: 130


Ver Perfil
Re: Error en lectura de Fichero
« Respuesta #2 en: 2 Septiembre 2010, 12:34 pm »

Nada no lo consiguo creo que lo estoy yo mal porque tu respuesta tiene sentido pero cuando lo intento lo hago mal, estoy probando con esto

Código
  1. List<type> <name> = (List) new Persona();
  2.  
« Última modificación: 2 Septiembre 2010, 12:41 pm por Afsoon » En línea

Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: Error en lectura de Fichero
« Respuesta #3 en: 2 Septiembre 2010, 13:08 pm »

Nada no lo consiguo creo que lo estoy yo mal porque tu respuesta tiene sentido pero cuando lo intento lo hago mal, estoy probando con esto

Código
  1. List<type> <name> = (List) new Persona();
  2.  
es precisamente lo que no puedes hacer, como ya te he dicho el cast explicito es para objetos o datos similares por asi decirlo, si quiere convertirlo tendrás que crear un método que lo haga manualmente, osea pasando los datos de persona a un list de uno en uno, si es que persona es un almacenador de tipo vector.

Saludos
En línea

Afsoon

Desconectado Desconectado

Mensajes: 130


Ver Perfil
Re: Error en lectura de Fichero
« Respuesta #4 en: 2 Septiembre 2010, 14:02 pm »

No, persona no es un almacenador de tipo vector, es una clase en la que se encuentra las variables que pregunta el programa para guardar en el archivo una vez que la persona se ha registrado
En línea

Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: Error en lectura de Fichero
« Respuesta #5 en: 2 Septiembre 2010, 14:54 pm »

No, persona no es un almacenador de tipo vector, es una clase en la que se encuentra las variables que pregunta el programa para guardar en el archivo una vez que la persona se ha registrado
Tiene que ser una extensión de clase list o de la clase padre de list para poder hacer ese tipo de cast.

Saludos
En línea

Afsoon

Desconectado Desconectado

Mensajes: 130


Ver Perfil
Re: Error en lectura de Fichero
« Respuesta #6 en: 9 Septiembre 2010, 17:03 pm »

Arreglado ya puedo iterar en una lista, pero no se como hacer que se me muestre el que se esta buscando y esa solucion me soluciona algo pero me saca otro fallo, todo lo que no este registrado como una array salta una excepcion, ahora pongo el codigo de la solucion pero no se como hacer que solo me muestre el que se busca en vez de todos.

Código
  1. List lista = (List)entrada.readObject();
  2. Iterator it = lista.iterator();
  3.  
  4. while(it.hasNext()){
  5. Entidad e = (Entidad)it.next();
  6. persona = (Persona) e;
  7. System.out.println(persona.getNombre());
  8. }
En línea

Afsoon

Desconectado Desconectado

Mensajes: 130


Ver Perfil
Re: Error en lectura de Fichero
« Respuesta #7 en: 13 Septiembre 2010, 19:13 pm »

Se puede cerrar ya se como buscar cuando se extrae la array del fichero y al final el de varias consulta sera para extraer la array de cuando se inserta varios clientes
En línea

Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: Error en lectura de Fichero
« Respuesta #8 en: 14 Septiembre 2010, 18:26 pm »

Se puede cerrar ya se como buscar cuando se extrae la array del fichero y al final el de varias consulta sera para extraer la array de cuando se inserta varios clientes
=D

Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con la lectura de un fichero
Programación C/C++
DarkSorcerer 3 2,388 Último mensaje 22 Noviembre 2013, 02:43 am
por Vaagish
Lectura fichero SAV (Hexadecimal)
Java
HelThunder 2 2,201 Último mensaje 29 Diciembre 2013, 19:14 pm
por ThinkByYourself
Problema lectura fichero
Java
Thryks 2 2,357 Último mensaje 14 Marzo 2014, 16:48 pm
por 1mpuls0
Problema lectura de datos por fichero
Programación C/C++
mester 2 2,098 Último mensaje 7 Octubre 2015, 21:48 pm
por mester
Java lectura de fichero
Programación General
kur79 1 2,056 Último mensaje 18 Noviembre 2015, 11:49 am
por Baal_30
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines