How to read data from file(.dat) in append mode

Posted by govardhan on Stack Overflow See other posts from Stack Overflow or by govardhan
Published on 2010-05-21T08:13:24Z Indexed on 2010/05/21 13:20 UTC
Read the original article Hit count: 280

Filed under:

We have an application which requires us to read data from a file (.dat) dynamically using deserialization. We are actually getting first object and it throws null pointer exception and "java.io.StreamCorruptedException:invalid type code:AC" when we are accessing other objects using a "for" loop.

        File file=null; 
         FileOutputStream fos=null; 
         BufferedOutputStream bos=null; 
         ObjectOutputStream oos=null; 
         try{ 
             file=new File("account4.dat"); 
             fos=new FileOutputStream(file,true); 
             bos=new BufferedOutputStream(fos); 
             oos=new ObjectOutputStream(bos); 
             oos.writeObject(m); 
             System.out.println("object serialized"); 
             amlist=new MemberAccountList(); 
             oos.close(); 
         } 
       catch(Exception ex){ 
         ex.printStackTrace(); 
       } 

Reading objects:

try{ 
    MemberAccount m1; 
    file=new File("account4.dat");//add your code here 
    fis=new FileInputStream(file); 
    bis=new BufferedInputStream(fis); 
    ois=new ObjectInputStream(bis); 
    System.out.println(ois.readObject()); 
    **while(ois.readObject()!=null){ 
     m1=(MemberAccount)ois.readObject(); 
       System.out.println(m1.toString()); 
   }/*mList.addElement(m1);** // Here we have the issue throwing null pointer exception 
    Enumeration elist=mList.elements(); 
    while(elist.hasMoreElements()){ 
        obj=elist.nextElement(); 
        System.out.println(obj.toString()); 
    }*/ 

} 
catch(ClassNotFoundException e){ 

} 
catch(EOFException e){ 
    System.out.println("end"); 
} 
catch(Exception ex){ 
    ex.printStackTrace(); 
} 

© Stack Overflow or respective owner

Related posts about java