java.io.IOException: Attempted read from closed stream.
	at org.apache.http.impl.io.ContentLengthInputStream.read(ContentLengthInputStream.java:165)
	at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:135)
	at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:148)
	at com.huawei.isap.console.server.service.httpsproxy.impl.HttpUtils.copyStreamData(HttpUtils.java:195)

原因是流只可以被读一次,第一次读完毕就已经被关闭,所以第二次读取的时候就是失败的。

//        String s = EntityUtils.toString(entity, "UTF-8");
//        System.out.println(s);
        if (null != entity) {
            try (final InputStream inputStream = entity.getContent();
                 final OutputStream outputStream = response.getOutputStream()) {
                if (inputStream != null) {
                    copyStreamData(inputStream, outputStream);
            } catch (IOException e) {
                log.info("", e);
                e.printStackTrace();

被注释的代码之前是放开的,注释时候不在报错。

在做 jsp 上传图片时,把 java 代码直接改成 jsp,上传时产生 如下异常: 2012-12-31 8:59:21 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for servlet jsp threw exception java.io.IOException: Stream closed … 百思不得其解,翻出 jsp 转成 servlet 后的代码。如下(很很的醒目一下): 代码如下: … }catch(Exception e){ e.printStackTrace();  java在运行程序报错内容如下: java.io.IOException: Attempted read from closed stream.  at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:162)  at org.apache.http.conn.EofSensorInp... java中GZIP压缩解压类使用实例当我们客户端与服务端进行数据传输时需要走流量,为了节省流量我们常常需要写一个压缩类对数据进行压缩。实例代码:import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.util.zip.GZIPInp... #java解压出现java.io.IOException: failed to skip current tar entry 当使用如下函数解压: AntBuilder antBuilder = new AntBuilder() antBuilder.untar(src: source.tar, dest: 目标路径) 当压缩文件损坏时,会出现报错java.io.IOException: fa... 错误:Attempted read from closed stream尝试读取关闭的流!!! 原因:一个HttpClient里只能有一次获取Entity的操作,不能有多次获取Entity的操作,getEntity()获取的流是一次性的,用了一次就会自动关闭,第二次调用的时候就是调一个关闭的流,就会抛出:Attempted read from closed stream; 解决办法:如果一个方法只对同一个Entity操作,可以用BufferedHttpEntity,可以多次读取流! HttpEntity java.io.IOException: Attempted read from closed stream. at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:177) at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:135) 在HttpClient请求的时候,返回结果解析时出现java.io.IOException: Attempted read from closed stream. 异常,解决 注意:原因是EntityUtils.toString(HttpEntity)方法被使用了多次。所以每个方法内只能使用一次。切记System.out.print打印也是使用一次。再次执行方法无效。 【问题】使用HttpClient出现java.io.IOException: Attempted read from closed stream 【原因】EntityUtils.toString(HttpEntity)方法中操作的是流数据,流数据是一次性数据所以同一个HttpEntity不能使用多次该方法 【修复】先用EntityUtils.toByteArray(HttpEntity)获取到字节数组,再对字节数组多次转字符串判断编码 【是否我导致】是 【解决Bug的时间】20分钟 【教训】操作流数据的方 在此代码示例中,我们将学习如何使用gzip压缩来压缩文件。从本质上讲,gzip只能压缩一个文件,不能将其用于压缩目录以及该目录中的所有文件。您将用于以gzip格式压缩文件的类包括GZipOutputStream,FileInputStream和FileOutputStream类。压缩文件的步骤在下面的代码段注释中进行了描述。packageorg.nhooo.example.zip;import... java.io.IOException:Attempted read on closed stream. W/System.err(14042):atorg.apache.http.conn.EofSensorInputStream.isReadAllowed(EofSensorInputStream.java:127) W/System.err(14042):atorg.apache.htt I/O error while reading input message; nested exception is java.io.IOException: Stream closed