Foro de elhacker.net

Programación => Java => Mensaje iniciado por: alzehimer_cerebral en 26 Octubre 2009, 16:25 pm



Título: XMLDecoder
Publicado por: alzehimer_cerebral en 26 Octubre 2009, 16:25 pm
Hola,

quiero meter en un vector los objetos creados a partir de un fichero XML, el codigo seria algo asi:

XMLDecoder d = new XMLDecoder(new BufferedInputStream(new FileInputStream("_path_xml")));

        while(){
            Object result = d.readObject();
            plugins.add(result);
        }
       d.close();

No se como poner la condicion del while para que siga entrando en caso de que haya datos en el XML para seguir leyendo....
He visto que readObject lanza una excepcion del tipo ArrayIndexOutOfBoundsException cuando no hay mas datos que leer, por lo tanto se podria hacer que cuando salte dicha excepcion que no entre mas en el while.  Como se haria esto??

Espero vuestras respuestas.

Salu2

alzehimer_cerebral


Título: Re: XMLDecoder
Publicado por: Leyer en 26 Octubre 2009, 17:25 pm
nunca habia usado el xml decoder pero si te funciona bien nice. asi te sirve....

Código
  1. while((object=d.readObject())!= null&&run){
  2. plugins.add(object);            
  3.  }
  4.  d.close();
  5. }catch (Exception e) {
  6. run=false;
  7. }


Título: Re: XMLDecoder
Publicado por: alzehimer_cerebral en 28 Octubre 2009, 20:12 pm
Mirar el metodo es este:

 public static Vector createPluginsFromXML(String _path_xml) throws FileNotFoundException{
        Vector plugins = null;
        Object result = new Object();
        String pru = _path_xml;
        System.out.println(pru);
        XMLDecoder d = new XMLDecoder(new BufferedInputStream(new FileInputStream(pru)));

        result=d.readObject();
       
        while(result!=null){
           
            plugins.add(result);
            result=d.readObject();
       }
       d.close();
       


        return plugins;
    } // end Boolean deletePluginFromXML(String _path_xml)

Lo que pasa que cuando readObject() vale null peta..

Como lo puedo solucionar??

Salu2 y gracias por las respuestas.

ALZEHIMER_CEREBRAL