天天看點

完全轉載 java報錯Attempted read from closed stream

 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.eofsensorinputstream.read(eofsensorinputstream.java:137)

 at sun.nio.cs.streamdecoder.readbytes(streamdecoder.java:264)

 at sun.nio.cs.streamdecoder.implread(streamdecoder.java:306)

 at sun.nio.cs.streamdecoder.read(streamdecoder.java:158)

 at java.io.inputstreamreader.read(inputstreamreader.java:167)

 at java.io.reader.read(reader.java:123)

 at org.apache.http.util.entityutils.tostring(entityutils.java:244)

 at org.apache.http.util.entityutils.tostring(entityutils.java:288)

終于找到報錯的原因:

entityutils.tostring(entity)

這是由于entityutils.tostring(entity)方法隻能調用一次,entity所得到的流是不可重複讀取的也就是說所得的到實體隻能一次消耗完,不能多次讀取。