欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

一、場景

后端提供一個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)閉輸出流,因為Servlet容器會在請求處理完成后自動關(guān)閉輸出流。如果在finally塊中嘗試關(guān)閉已關(guān)閉的輸出流,就會拋出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 {
            // 清空下載文件的空白行(空白行是因為有的前端代碼編譯后產(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)文章

  • java中對象和Map互相轉(zhuǎn)換的幾種常見方式舉例

    java中對象和Map互相轉(zhuǎn)換的幾種常見方式舉例

    Map在日常開發(fā)應(yīng)用中的頻率很高,最常用的實現(xiàn)類是HashMap和有序的TreeMap,下面這篇文章主要給大家介紹了關(guān)于java中對象和Map互相轉(zhuǎn)換的幾種常見方式舉例,需要的朋友可以參考下
    2024-01-01
  • Java的CollectionUtils工具類詳解

    Java的CollectionUtils工具類詳解

    這篇文章主要介紹了Java的CollectionUtils工具類詳解,CollectionUtils工具類是在apache下的,而不是springframework下的,個人覺得在真實項目中CollectionUtils,可以使你的代碼更加簡潔和安全,需要的朋友可以參考下
    2023-05-05
  • Java Stream流之求和的實現(xiàn)

    Java Stream流之求和的實現(xiàn)

    這篇文章主要介紹了Java Stream流之求和的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Java使用JDBC驅(qū)動連接MySQL數(shù)據(jù)庫

    Java使用JDBC驅(qū)動連接MySQL數(shù)據(jù)庫

    這篇文章主要為大家詳細(xì)介紹了Java使用JDBC驅(qū)動連接MySQL數(shù)據(jù)庫的具體步驟,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • springboot中PostMapping正常接收json參數(shù)后返回404問題

    springboot中PostMapping正常接收json參數(shù)后返回404問題

    這篇文章主要介紹了springboot中PostMapping正常接收json參數(shù)后返回404問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • MyBatis最常用的增刪改查操作詳解

    MyBatis最常用的增刪改查操作詳解

    這篇文章主要介紹了MyBatis中常見的增、刪、改、查(CRUD)操作,通過創(chuàng)建數(shù)據(jù)庫表、實體類、Mapper接口及映射文件,我們實現(xiàn)了對user表的增刪改查操作,MyBatis簡化了數(shù)據(jù)庫操作,需要的朋友可以參考下
    2024-12-12
  • Spring Security 強(qiáng)制退出指定用戶的方法

    Spring Security 強(qiáng)制退出指定用戶的方法

    本篇文章主要介紹了Spring Security 強(qiáng)制退出指定用戶的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • java 非對稱加密算法DH實現(xiàn)詳解

    java 非對稱加密算法DH實現(xiàn)詳解

    這篇文章主要介紹了java 非對稱加密算法DH實現(xiàn)詳解 ,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • Java設(shè)計模式之裝飾模式詳解

    Java設(shè)計模式之裝飾模式詳解

    這篇文章主要介紹了Java設(shè)計模式之裝飾模式詳解,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • mybatis-spring:@MapperScan注解的使用

    mybatis-spring:@MapperScan注解的使用

    這篇文章主要介紹了mybatis-spring:@MapperScan注解的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09

最新評論