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

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

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

一、場景

后端提供一個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ā)送響應。在finally塊中不需要關閉輸出流,因為Servlet容器會在請求處理完成后自動關閉輸出流。如果在finally塊中嘗試關閉已關閉的輸出流,就會拋出java.io.IOException: Stream is closed異常。因此,我們可以安全地省略關閉輸出流的代碼。

四、demo

    @Operation(summary = "下載模版")
    @GetMapping("download")
    public Result<String> download(HttpServletResponse response) {
        String fileName = "demo模版.xlsx";
        ServletOutputStream outputStream = response.getOutputStream()
        try {
            // 清空下載文件的空白行(空白行是因為有的前端代碼編譯后產生的)
            response.reset();
            response.setCharacterEncoding("utf-8");
            // 解決中文文件名亂碼問題
            String encodedFileName = URLEncoder.encode(fileName, "UTF-8");
            response.setHeader("Content-Disposition", "attachment;filename=\"" + encodedFileName + "\";filename*=utf-8''" + encodedFileName);
            // 設置文件類型
            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 {
            // 不要在此處關閉輸出流
            // outputStream.close();
        }
        return Result.success("下載成功");
    }

總結 

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

相關文章

  • DTO 實現 service 和 controller 之間值傳遞的操作

    DTO 實現 service 和 controller 之間值傳遞的操作

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

    Spring Boot集成Thymeleaf的方法

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

    利用Springboot實現Jwt認證的示例代碼

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

    springboot+EHcache 實現文章瀏覽量的緩存和超時更新

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

    記一次線上SpringCloud Feign請求服務超時異常排查問題

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

    maven項目錯誤:找不到或無法加載主類?XXX問題

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

    Java數組的特性_動力節(jié)點Java學院整理

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

    spring?@Transactional注解中常用參數詳解

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

    VS?Code插件Language?Support?for?Java(TM)?by?Red?Hat報錯兩種

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

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

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

最新評論

隆昌县| 株洲县| 乐亭县| 环江| 青神县| 临朐县| 双桥区| 普兰店市| 达州市| 资源县| 宽城| 建水县| 昆明市| 万州区| 确山县| 郴州市| 湘乡市| 宜兰市| 隆子县| 光山县| 罗源县| 宁强县| 太白县| 富顺县| 手游| 德兴市| 息烽县| 泾阳县| 金乡县| 巍山| 驻马店市| 墨玉县| 徐汇区| 柳州市| 邵阳县| 安阳县| 上杭县| 凤庆县| 南涧| 汉阴县| 南溪县|