A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吃阁子的猫 中级黑马   /  2013-8-10 10:40  /  1076 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 吃阁子的猫 于 2013-8-11 18:37 编辑

ByteArrayOutputStream类中的API描述关闭 "ByteArrayOutputStream 无效。此类中的方法在关闭此流后仍可被调用,而不会产生任何 IOException",既然这样,为什么还是会有close()方法呢?

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1

查看全部评分

5 个回复

倒序浏览
我个人认为应该是这样的,因为ByteArrayOutputStream继承了父类OutputStream,它就应该具备父类的功能,而OutPutStream中具有close()方法,所以它应该也有close()方法。至于关闭无效,可以参考它的源码,源码中的close()方法中没有任何执行代码,他就是一个空的函数。

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1

查看全部评分

回复 使用道具 举报
ByteArrayOutputStream是用来缓存数据的(数据写入的目标(output stream原义)),向它的内部缓冲区写入数据,缓冲区自动增长,当写入完成时可以从中提取数据。由于这个原因,ByteArrayOutputStream常用于存储数据以用于一次写入~
他没有操作到windows的底层只是把数据写进行数组所以他没有流可以关闭~所以实现OutPutStream中的close()为空方法就好。

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1

查看全部评分

回复 使用道具 举报
牛牛 发表于 2013-8-10 12:38
ByteArrayOutputStream是用来缓存数据的(数据写入的目标(output stream原义)),向它的内部缓冲区写入数 ...

那就是不用关流咯?
回复 使用道具 举报
Friendy89 发表于 2013-8-10 12:17
我个人认为应该是这样的,因为ByteArrayOutputStream继承了父类OutputStream,它就应该具备父类的功能,而O ...

那关闭的这个动作不就多余了吗
回复 使用道具 举报
吃阁子的猫 发表于 2013-8-10 14:11
那关闭的这个动作不就多余了吗

可以这么说,在程序设计的时候关闭动作可以不用写的,他只是为了继承父类而存在的方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马