Foro de elhacker.net

Programación => Java => Mensaje iniciado por: peib0l en 2 Marzo 2015, 19:25 pm



Título: Ayuda! Error con ObjectOutputStream [Solucionado]
Publicado por: peib0l en 2 Marzo 2015, 19:25 pm
Buenas tarde foreros, tengo un ligero problema al guardar un ArrayList en un fichero :/

Alguien ve el error? puede ser tema de permisos? (trabajo bajo Linux)

Código:
private static void exportaProductos(ArrayList p){
ObjectOutputStream fichero = null;
try {
fichero = new ObjectOutputStream(new FileOutputStream("productos.mio"));
for(int x = 0; x<p.size(); x++){
fichero.writeObject(p.get(x));
}

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
try{
fichero.close();
}catch(IOException f){}

}

}



Título: Re: Ayuda! Error con ObjectOutputStream [Solucionado]
Publicado por: peib0l en 2 Marzo 2015, 20:25 pm
Se me olvidó " implements Serializable "  ;D ;D


Título: Re: Ayuda! Error con ObjectOutputStream [Solucionado]
Publicado por: Usuario Invitado en 2 Marzo 2015, 20:44 pm
Lol xD. Suele pasar :xD

PD: Puedes aprovechar el autocloseable:

Código
  1. public void exportProducts(List<ProductVO> products) {
  2.  try(ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("D:\\products.obj"))) {
  3.   for(ProductVO product : products)
  4. out.writeObject(product);
  5.  } catch(FileNotFoundException ex) {
  6. ex.printStackTrace();
  7.  } catch(IOException ex2) {
  8. ex2.printStackTrace();
  9. }
  10.  
  11. }

Así ya no tienes que preocuparte por cerrar flujos o conexiones ;)


Título: Re: Ayuda! Error con ObjectOutputStream [Solucionado]
Publicado por: peib0l en 2 Marzo 2015, 21:58 pm
Lol xD. Suele pasar :xD

PD: Puedes aprovechar el autocloseable:

Código
  1. public void exportProducts(List<ProductVO> products) {
  2.  try(ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("D:\\products.obj"))) {
  3.   for(ProductVO product : products)
  4. out.writeObject(product);
  5.  } catch(FileNotFoundException ex) {
  6. ex.printStackTrace();
  7.  } catch(IOException ex2) {
  8. ex2.printStackTrace();
  9. }
  10.  
  11. }

Así ya no tienes que preocuparte por cerrar flujos o conexiones ;)

Muchas gracias no sabia que podía hacerlo de esa manera,  me voy a ahorrar unas cuentas lineas de codigo ;)