在程序执行过程中,如果我们遇见了以下异常:java.io.IOException: Stream closed.
即stream已经被关闭,我们分析一下就很容易知道原因了,即stream已经被关闭。那么最有可能的情况就是你多次关闭了Stream。
try {
InputStream is = new xxx();
// other codes
is.close(); //第一次关闭inputStream
} catch(IOException e) {
} finally
is.close(); //再一次关闭inputStream,这样会引起 Stream closed 异常
解决方法:将多余的close语句去掉。
同理,在jsp中,或servlet中也一样,多次关闭out,也会抛出此异常,解决方法与此相同!
注:finally{}内的内容一定会执行!!!
---------------------
作者:superfatsheep
来源:CSDN
原文:https://blog.csdn.net/pianistOfSoftware/article/details/51899343
版权声明:本文为博主原创文章,转载请附上博文链接!
Java文件流“java.io.IOException: Stream closed”异常解决
初学者在Java的io流操作中往往最容易忘记的就是处理完之后流的关闭,但是好不容易记起来了,却又出现java.io.IOException: Stream closed的异常,现在以记事本案例来演示此问题。
java.io.IOException: Stream closed 是一个常见的 Java 异常,通常发生在尝试对一个已经关闭的输入/输出流(如 InputStream, OutputStream, Reader, Writer 等)执行读写操作时。这个异常是 Java I/O 框架的一部分,用于指示在 I/O 操作期间发生了某种错误。
FileInputStream inputStream = null;
try {
inputStream = new FileInputStream("tst.txt");
} catch (FileNotFoundException e) {
e.printStackTrace();
BufferedInputStream bufferedInp...
`java.io.IOException: Stream closed` 异常通常发生在尝试对已关闭的输入/输出流(如 `InputStream`、`OutputStream`、`Reader`、`Writer` 等)执行操作时。一旦流被关闭,任何试图读取或写入该流的操作都会抛出这个异常。
### 报错原因
1. **流被错误地关闭了**:在代码中可能不小心提前关闭了流,或者在多线程环境中另一个线程关闭了流。
2. **资源管理的错误**:使用 `try-with-resources` 语句时,流会在
SpirngBoot拦截器(Interceptor)和过滤器(Filter)的操作的如下图所示。OOP编程的思路是封装、继承和多态,而AOP编程的思路是不改变原有接口和功能的基础上提供功能扩展。SpringBoot拦截器和过滤器是Spring Boot的一种机制,用于对请求和响应进行操作的拦截,是AOP编程的一种体现。一般来说,AOP编程的实现思路是提供代理,把一些常用功能如权限检查、日志、事务等,从每个业务方法中剥离出来,而提供代理统一实现。该问题的解决思路是:提供一个复制流,让操作基于复制流。
某位刚来不久的实习生,在写一个File文件转Base64编码的项目过程中,需要关闭IO流,看他代码实在太长,就给了工具类,这篇幅里有讲,详见链接:https://blog.csdn.net/weixin_39309402/article/details/101447275
结果他执行代码的时候,发现文件内容为Null,就问我为什么?我先把代码贴上:
public class Base64ToS...
文件下载接口不能有返回值。。。。。。。。。。因为接口被调用后`response`会自动关闭`ServletOutputStream`,而return时会再次自动关闭`OutputStream`,就会导致Stream is closed
//创建outputStream
response.setContentType("APPLICATION/OCTET-STREAM");
response.setHeader("Content-Disposition",
"attachment;filename=" + URLEncoder.encode(zipName.concat(".zip"), "UTF-8"));
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpRequest;
import org.springframework.http.client.Clie...