Java JPA write object to binary file -
database (user)
id name
1 ali
2 abu
3 ahmadwritebinaryfile.java
entitymanagerfactory emf = persistence.createentitymanagerfactory("userpu"); entitymanager em = emf.createentitymanager(); query query1 = em.createnativequery("select * user",user.class); list<user> list = query1.getresultlist(); for(user userlist: list){ fileoutputstream fos = new fileoutputstream("test.dat"); objectoutputstream oos = new objectoutputstream(fos); oos.writeobject(userlist); oos.close(); }readbinaryfile.java
fileinputstream fis = new fileinputstream("test.dat"); objectinputstream ois = new objectinputstream(fis); user user1 = (user) ois.readobject(); ois.close(); system.out.println(user1.getid+" "+user1.getname());when read readbinaryfile.java, can output following:
3 ahmadmy expected output:
1 ali
2 abu
3 ahmadwhat doing wrong? how can solve it?
aren't overwriting file on each loop?
for(user user: list){     //overwrites file on each loop     fileoutputstream fos = new fileoutputstream("test.dat");     objectoutputstream oos = new objectoutputstream(fos);      oos.writeobject(user);     oos.close(); }   you need either create new file each user or write entire list , read in.
fileoutputstream fos = new fileoutputstream("test.dat"); objectoutputstream oos = new objectoutputstream(fos);  oos.writeobject(list); oos.flush(); oos.close();   fileinputstream fis = new fileinputstream("test.dat"); objectinputstream ois = new objectinputstream(fis);  list<user> users = (list<user>) ois.readobject(); ois.close();  for(user user : users){     system.out.println(user.getid() +" " + user.getname()); }      
Comments
Post a Comment