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

關(guān)于java.io.EOFException產(chǎn)生的原因以及解決方案

 更新時間:2025年01月23日 14:26:27   作者:宣布無人罪  
文章總結(jié):EOFException異常通常發(fā)生在嘗試從空的ObjectInputStream對象中讀取數(shù)據(jù)時,解決方法是在finally語句中添加判斷,確保objectInputStream不為空后再進(jìn)行關(guān)閉操作,在處理1.txt文件為空的情況時,捕獲EOFException可以避免程序終止,并且不會拋出空指針異常

java.io.EOFException產(chǎn)生的原因及解決

異常發(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ù)載入失敗");
        }

異常產(chǎn)生原因

經(jīng)過導(dǎo)師查找,終于發(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(空指針異常)

異常解決

        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語句內(nèi)加上判斷,不等于空值才關(guān)閉

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

如果不為空,則

students = (ArrayList<Student>) objectInputStream.readObject();

正常執(zhí)行,不報(bào)錯誤~

總結(jié)

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

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

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java開發(fā)崗位面試被問到反射怎么辦

    Java開發(fā)崗位面試被問到反射怎么辦

    這篇文章主要介紹了java 面向?qū)ο竺嬖嚰\的相關(guān)資料,這里整理了面向?qū)ο蟮幕A(chǔ)知識,幫助大家學(xué)習(xí)理解此部分的知識,需要的朋友可以參考下
    2021-07-07
  • Java使用Fastjson2處理JSON字段大小寫不一致的優(yōu)雅方案

    Java使用Fastjson2處理JSON字段大小寫不一致的優(yōu)雅方案

    這篇文章主要為大家詳細(xì)介紹了Java使用Fastjson2處理JSON字段大小寫不一致的優(yōu)雅方案,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2026-04-04
  • 淺談Java多進(jìn)程程序的運(yùn)行模式

    淺談Java多進(jìn)程程序的運(yùn)行模式

    這篇文章主要介紹了淺談Java多進(jìn)程程序的運(yùn)行模式,包括對進(jìn)程阻塞問題的討論等,需要的朋友可以參考下
    2015-11-11
  • 使用Spring多數(shù)據(jù)源配置

    使用Spring多數(shù)據(jù)源配置

    這篇文章主要介紹了使用Spring多數(shù)據(jù)源配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • servlet實(shí)現(xiàn)簡單的權(quán)限管理和敏感詞過濾功能

    servlet實(shí)現(xiàn)簡單的權(quán)限管理和敏感詞過濾功能

    JavaEE課要求用servlet和過濾器實(shí)現(xiàn)權(quán)限管理和敏感詞過濾功能,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Java?Web實(shí)現(xiàn)簡易圖書管理系統(tǒng)

    Java?Web實(shí)現(xiàn)簡易圖書管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Java?Web實(shí)現(xiàn)簡易圖書管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • SpringBoot詳細(xì)講解異步任務(wù)如何獲取HttpServletRequest

    SpringBoot詳細(xì)講解異步任務(wù)如何獲取HttpServletRequest

    在使用框架日常開發(fā)中需要在controller中進(jìn)行一些異步操作減少請求時間,但是發(fā)現(xiàn)在使用@Anysc注解后會出現(xiàn)Request對象無法獲取的情況,本文就此情況給出完整的解決方案
    2022-04-04
  • SpringSecurity-2.7中跨域問題解析

    SpringSecurity-2.7中跨域問題解析

    這篇文章主要介紹了SpringSecurity-2.7中跨域問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-01-01
  • SpringBoot實(shí)現(xiàn)異步調(diào)用的方法示例

    SpringBoot實(shí)現(xiàn)異步調(diào)用的方法示例

    本文介紹了在Java的SpringBoot中實(shí)現(xiàn)異步請求和異步調(diào)用的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • Java如何修改JsonObject中的屬性值

    Java如何修改JsonObject中的屬性值

    這篇文章主要介紹了Java如何修改JsonObject中的屬性值問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12

最新評論

光山县| 清苑县| 迭部县| 隆回县| 平利县| 繁峙县| 宁武县| 元氏县| 台南市| 南昌市| 阜宁县| 赤城县| 奇台县| 台北县| 青龙| 平定县| 宁德市| 海伦市| 泰顺县| 连江县| 东乡| 长顺县| 墨脱县| 榆中县| 施甸县| 新津县| 开平市| 大宁县| 田阳县| 贵溪市| 桃园市| 莆田市| 弥勒县| 金山区| 望谟县| 调兵山市| 河间市| 江达县| 开原市| 汉寿县| 普安县|