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

java.io.IOException:?UT010029:?Stream?is?closed異常分析及解決

 更新時(shí)間:2024年02月19日 09:03:38   作者:K_米諾  
這篇文章主要給大家介紹了關(guān)于java.io.IOException:?UT010029:?Stream?is?closed異常分析及解決辦法,文中通過代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

一、場景

后端提供一個(gè)excel文件模板下載接口

二、異常信息

java.io.IOException: UT010029: Stream is closed
    at io.undertow.servlet.spec.ServletOutputStreamImpl.write(ServletOutputStreamImpl.java:139) ~[undertow-servlet-2.2.19.Final.jar:2.2.19.Final]
    at org.springframework.session.web.http.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:624) ~[spring-session-core-2.7.0.jar:2.7.0]
    at java.io.ByteArrayOutputStream.writeTo(ByteArrayOutputStream.java:167) ~[na:1.8.0_341]

三、異常分析

我們使用了ServletOutputStream來向客戶端發(fā)送響應(yīng)。在finally塊中不需要關(guān)閉輸出流,因?yàn)镾ervlet容器會(huì)在請求處理完成后自動(dòng)關(guān)閉輸出流。如果在finally塊中嘗試關(guān)閉已關(guān)閉的輸出流,就會(huì)拋出java.io.IOException: Stream is closed異常。因此,我們可以安全地省略關(guān)閉輸出流的代碼。

四、demo

    @Operation(summary = "下載模版")
    @GetMapping("download")
    public Result<String> download(HttpServletResponse response) {
        String fileName = "demo模版.xlsx";
        ServletOutputStream outputStream = response.getOutputStream()
        try {
            // 清空下載文件的空白行(空白行是因?yàn)橛械那岸舜a編譯后產(chǎn)生的)
            response.reset();
            response.setCharacterEncoding("utf-8");
            // 解決中文文件名亂碼問題
            String encodedFileName = URLEncoder.encode(fileName, "UTF-8");
            response.setHeader("Content-Disposition", "attachment;filename=\"" + encodedFileName + "\";filename*=utf-8''" + encodedFileName);
            // 設(shè)置文件類型
            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
            // 讀取文件并輸出到瀏覽器
            File file = FileUtil.file("templates/demo_templates.xlsx");
            outputStream.write(FileUtils.readFileToByteArray(file));
            outputStream.flush();
        } catch (IOException e) {
            log.error("下載文件失敗,{}", fileName, e);
        } finally {
            // 不要在此處關(guān)閉輸出流
            // outputStream.close();
        }
        return Result.success("下載成功");
    }

總結(jié) 

到此這篇關(guān)于java.io.IOException: UT010029: Stream is closed異常分析及解決的文章就介紹到這了,更多相關(guān)java.io.IOException: UT010029內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • DTO 實(shí)現(xiàn) service 和 controller 之間值傳遞的操作

    DTO 實(shí)現(xiàn) service 和 controller 之間值傳遞的操作

    這篇文章主要介紹了DTO 實(shí)現(xiàn) service 和 controller 之間值傳遞的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Spring Boot集成Thymeleaf的方法

    Spring Boot集成Thymeleaf的方法

    這篇文章主要介紹了Spring Boot集成Thymeleaf的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 利用Springboot實(shí)現(xiàn)Jwt認(rèn)證的示例代碼

    利用Springboot實(shí)現(xiàn)Jwt認(rèn)證的示例代碼

    這篇文章主要介紹了利用Springboot實(shí)現(xiàn)Jwt認(rèn)證的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • springboot+EHcache 實(shí)現(xiàn)文章瀏覽量的緩存和超時(shí)更新

    springboot+EHcache 實(shí)現(xiàn)文章瀏覽量的緩存和超時(shí)更新

    這篇文章主要介紹了springboot+EHcache 實(shí)現(xiàn)文章瀏覽量的緩存和超時(shí)更新,問題描述和解決思路給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2017-04-04
  • 記一次線上SpringCloud Feign請求服務(wù)超時(shí)異常排查問題

    記一次線上SpringCloud Feign請求服務(wù)超時(shí)異常排查問題

    這篇文章主要介紹了記一次線上SpringCloud Feign請求服務(wù)超時(shí)異常排查問題,本項(xiàng)目與下游項(xiàng)目均注冊在Eureka上面,對這個(gè)1秒就超時(shí)感到很迷惑,于是開始查閱底層源碼之旅。需要的朋友可以參考下
    2022-01-01
  • maven項(xiàng)目錯(cuò)誤:找不到或無法加載主類?XXX問題

    maven項(xiàng)目錯(cuò)誤:找不到或無法加載主類?XXX問題

    這篇文章主要介紹了maven項(xiàng)目錯(cuò)誤:找不到或無法加載主類?XXX問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Java數(shù)組的特性_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java數(shù)組的特性_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    數(shù)組是基本上所有語言都會(huì)有的一種數(shù)據(jù)類型,它表示一組相同類型的數(shù)據(jù)的集合,具有固定的長度,并且在內(nèi)存中占據(jù)連續(xù)的空間。在C,C++等語言中,數(shù)組的定義簡潔清晰,而在Java中確有一些會(huì)讓人迷惑的特性。本文就嘗試分析這些特性
    2017-04-04
  • spring?@Transactional注解中常用參數(shù)詳解

    spring?@Transactional注解中常用參數(shù)詳解

    這篇文章主要介紹了spring?@Transactional注解中常用參數(shù)詳解,事物注解方式:?@Transactional,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-02-02
  • VS?Code插件Language?Support?for?Java(TM)?by?Red?Hat報(bào)錯(cuò)兩種解決辦法

    VS?Code插件Language?Support?for?Java(TM)?by?Red?Hat報(bào)錯(cuò)兩種

    這篇文章主要介紹了VS?Code插件Language?Support?for?Java(TM)?by?Red?Hat報(bào)錯(cuò)兩種解決辦法的相關(guān)資料,第一種在setting.json中配置使用新版本JDK運(yùn)行,第二種方法是切換至支持舊版本Jdk的插件版本,但不推薦,建議要確保使用最新JDK以避免兼容性問題,需要的朋友可以參考下
    2026-04-04
  • Mybatis-Plus updateById方法更新無效及空值處理過程

    Mybatis-Plus updateById方法更新無效及空值處理過程

    MyBatis-Plus的updateById默認(rèn)不更新null值以防止誤操作,可通過UpdateWrapper/LambdaUpdateWrapper顯式設(shè)置,或全局配置、注解@TableField允許字段更新為空,需根據(jù)業(yè)務(wù)場景選擇合適方式
    2025-07-07

最新評論

平远县| 宜君县| 道真| 沽源县| 津市市| 磐石市| 龙南县| 隆子县| 宣武区| 库伦旗| 利辛县| 阿勒泰市| 松潘县| 襄垣县| 衡阳市| 东源县| 婺源县| 冷水江市| 垫江县| 宜良县| 遂宁市| 正阳县| 芦溪县| 德兴市| 江门市| 丽江市| 白水县| 玉田县| 邢台县| 大荔县| 西丰县| 砚山县| 平遥县| 浦县| 固原市| 海晏县| 依安县| 革吉县| 建宁县| 丹棱县| 固阳县|