最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java.io.EOFException產(chǎn)生原因及解決方法(附代碼)

 更新時間:2023年09月20日 11:03:14   作者:夢囈  
java.io.EOFException表示在讀取數(shù)據(jù)時突然遇到了文件或流的末尾,也就是說客戶端或服務器已經(jīng)關閉了連接,但是你還在嘗試讀取數(shù)據(jù),這篇文章主要給大家介紹了關于java.io.EOFException產(chǎn)生原因及解決的相關資料,需要的朋友可以參考下

01 異常發(fā)生場景

使用ObjectInputStream類往文件中傳入自定義類student時

ObjectInputStream objectInputStream=null;
 ? ? ? ?ArrayList<Student> students=null;
 ? ? ? ?try {
 ? ? ? ? ? ?objectInputStream = new ObjectInputStream(new FileInputStream("D:\\桌面\\java38\\javase08\\java08\\1.txt"));
 ? ? ? ? ? ?students = (ArrayList<Student>) objectInputStream.readObject();
 ? ? ? ? ? ?System.out.println("數(shù)據(jù)載入成功");
?
 ? ? ?  }catch (Exception e) {
 ? ? ? ? ? ?e.printStackTrace();
 ? ? ? ? ? ?System.out.println("數(shù)據(jù)載入失敗");
 ? ? ?  }

02 異常產(chǎn)生原因

經(jīng)過導師查找,終于發(fā)現(xiàn)了OFException產(chǎn)生的原因

ObjectInputStream objectInputStream=null;
//idea上顯示null為灰色,說明 new ObjectInputStream(new FileInputStream("D:\\桌面\\java38\\javase08\\java08\\1.txt"));返回值為null,即文件"D:\\桌面\\java38\\javase08\\java08\\1.txt"為空
objectInputStream = new ObjectInputStream(new FileInputStream("D:\\桌面\\java38\\javase08\\java08\\1.txt"));

objectInputStream為空值,則不能使用objectInputStream.close();如果使用會產(chǎn)生并發(fā)癥 java.lang.NullPointerException(空指針異常)

03 異常解決

ObjectInputStream objectInputStream=null;
 ? ? ? ?ArrayList<Student> students=null;
 ? ? ? ?try {
 ? ? ? ? ? ?objectInputStream = new ObjectInputStream(new FileInputStream("D:\\桌面\\java38\\javase08\\java08\\1.txt"));
 ? ? ? ? ? ?students = (ArrayList<Student>) objectInputStream.readObject();
 ? ? ? ? ? ?System.out.println("數(shù)據(jù)載入成功");
?
 ? ? ?  } catch (EOFException e) {
 ? ? ? ? ? ?students = new ArrayList<>();
?
 ? ? ?  }catch (Exception e) {
 ? ? ? ? ? ?e.printStackTrace();
 ? ? ? ? ? ?System.out.println("數(shù)據(jù)載入失敗");
 ? ? ?  } finally {
 ? ? ? ? ? ?if(objectInputStream != null) {
 ? ? ? ? ? ? ? ?objectInputStream.close();
 ? ? ? ? ?  }
  • 在finally語句內加上判斷,不等于空值才關閉

  • 捕獲EOFException,但不打印錯誤,為students,new一個新的集合(本來這里也有一個會出bug的地方,但是被我之前就給students賦了null值,(ArrayList<Student> students=null;)所以catch里new一個新的對象)

  • 如果不為空,則 students = (ArrayList<Student>) objectInputStream.readObject();正常執(zhí)行,不報錯誤

04 總結

java.io.EOFException不是一個常出現(xiàn)的問題,而且并發(fā)癥 java.lang.NullPointerException(空指針異常),只有objectInputStream.readObject();接收為null且1.txt文件為空時才會出現(xiàn)

EOFException只需要捕獲,該bug在本場景下被捕獲后程序就不會終止了,甚至不處理也行。

到此這篇關于java.io.EOFException產(chǎn)生原因及解決的文章就介紹到這了,更多相關java.io.EOFException解決內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java中關鍵字final finally finalize的區(qū)別介紹

    Java中關鍵字final finally finalize的區(qū)別介紹

    這篇文章主要給大家分享的是 Java中final,finally,finalize 到底有什么區(qū)別,文章圍繞final,finally,finalize的相關資料展開詳細內容,具有一定的參考的價值,需要的朋友可以參考一下
    2022-04-04
  • 關于@CacheEvict無法解決分頁緩存清除的解決思路

    關于@CacheEvict無法解決分頁緩存清除的解決思路

    這篇文章主要介紹了關于@CacheEvict無法解決分頁緩存清除的解決思路,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • java實現(xiàn)分布式項目搭建的方法

    java實現(xiàn)分布式項目搭建的方法

    這篇文章主要介紹了java實現(xiàn)分布式項目搭建的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • RabbitMQ從入門到精通與實戰(zhàn)指南

    RabbitMQ從入門到精通與實戰(zhàn)指南

    本文詳細介紹了RabbitMQ,包括其基礎認知、核心架構、交換機類型、高級特性、實戰(zhàn)演練和運維監(jiān)控,通過本文的學習,讀者可以掌握RabbitMQ的使用方法和最佳實踐,感興趣的朋友跟隨小編一起看看吧
    2026-01-01
  • 詳談Java幾種線程池類型介紹及使用方法

    詳談Java幾種線程池類型介紹及使用方法

    下面小編就為大家?guī)硪黄斦凧ava幾種線程池類型介紹及使用方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • SWT(JFace) 打印功能

    SWT(JFace) 打印功能

    SWT(JFace)體驗之打印功能
    2009-06-06
  • 新建springboot項目時,entityManagerFactory報錯的解決

    新建springboot項目時,entityManagerFactory報錯的解決

    這篇文章主要介紹了新建springboot項目時,entityManagerFactory報錯的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • java selenium教程之selenium詳細介紹

    java selenium教程之selenium詳細介紹

    本文主要介紹Java selenium,這里整理了selenium的一些基本資料,此軟件主要用于Web UI自動測試框架,有興趣的同學可以看一下
    2016-08-08
  • 淺談SpringBoot內嵌Tomcat的實現(xiàn)原理解析

    淺談SpringBoot內嵌Tomcat的實現(xiàn)原理解析

    這篇文章主要介紹了淺談SpringBoot內嵌Tomcat的實現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • 面試中遇到的java逃逸分析問題

    面試中遇到的java逃逸分析問題

    這篇文章主要介紹了面試中遇到的java逃逸分析問題,逃逸分析(Escape Analysis)簡單來講就是,Java Hotspot 虛擬機可以分析新創(chuàng)建對象的使用范圍,并決定是否在 Java 堆上分配內存的一項技術。,需要的朋友可以參考下
    2019-06-06

最新評論

友谊县| 长白| 商南县| 遂溪县| 吉木萨尔县| 泉州市| 和硕县| 宝坻区| 河东区| 平山县| 阳江市| 嘉善县| 南靖县| 民丰县| 南投市| 揭阳市| 葫芦岛市| 高雄县| 罗定市| 南通市| 太保市| 黄梅县| 抚州市| 柳河县| 大新县| 抚顺县| 万宁市| 广灵县| 太湖县| 六枝特区| 苏州市| 宁南县| 浦城县| 抚顺市| 永丰县| 肃南| 利辛县| 崇州市| 五大连池市| 山阳县| 高邮市|