關於反序列化時拋出java.io.EOFException異常


問題描述:在反序列化對象時,當對象出入流將文件的全部類反序列化之后,始終會拋出java.io.EOFException.

原因:java API文檔中對於反序列化對象時使用的java.io.ObjectInputStream類的readObject()方法的描述有一句話是"該方法始終會拋出異常",也就是說該異常無法避免的.

解決方法:

  該異常是輸入流已經到結尾了的標志,我們可以將其捕獲,然后不做任何操作,即結束了該次反序列化操作,代碼如下:

  

 1     ObjectInputStream ois = null;
 2     FileInputStream fis=new FileInputStream(filePath);
 3     //當文件中的有內容時
 4     if(fis.available()!=0)
 5         ois = new ObjectInputStream(fis);
 6     else{
 7         System.out.println("文件為空!");
 8         return ;
 9     }
10     try{
11         while(true)                            
12           System.out.println((Student)ois.readObject());
13     }catch(EOFException e){
14     }

ps:在創建ObjectInputStream對象時,如果文件中沒有內容,同樣也會拋出java.io.EOFException


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM