关于ByteArrayInputStream的close方法

戴威 发布于 2010/10/23 17:16
阅读 1K+
收藏 2

读源码的时候发现ByteArrayInputStream的close方法内是空的

    /**
     * Closing a <tt>ByteArrayInputStream</tt> has no effect. The methods in
     * this class can be called after the stream has been closed without
     * generating an <tt>IOException</tt>.
     * <p>
     */
    public void close() throws IOException {
    }
为什么要这样呢,很是奇怪啊
加载中
0
该用户已被和谐
该用户已被和谐

求解!

应该是什么也没有做。在 Closeable 接口里面有这样一句话:

If the stream is already closed then invoking this method has no effect
0
D
DarkerLee

ByteArrayInputStream是基于内存Byte数组的流,不需要close,当没有强引用的时候会自动被垃圾回收了,所以close实现为空。

0
戴威
戴威

引用来自#3楼“DarkLee”的帖子

ByteArrayInputStream是基于内存Byte数组的流,不需要close,当没有强引用的时候会自动被垃圾回收了,所以close实现为空。

我明白了,非常感谢

0
sumekey
sumekey

引用来自“MLee”的答案

ByteArrayInputStream是基于内存Byte数组的流,不需要close,当没有强引用的时候会自动被垃圾回收了,所以close实现为空。

我也明白了,非常感谢
返回顶部
顶部