社区
Java SE
帖子详情
ByteArrayOutputStream关闭问题
hmy468689496
2016-09-28 09:28:06
ByteArrayOutputStream里面的close关闭无效,是一个空实现源码。那么有木有办法对其进行有效的关闭?不关闭对性能有影响吗?
项目经理问过我为什么关流问题了,,,但是这个流是关闭不掉的,所以在寻找如何有效关闭。而jdk既然让这个字节数组流关闭无效,那么自然有他的道理,那既然jdk的设计者们都没让他关,所以我在此一问性能问题的影响。共两个问题哈
...全文
1650
3
打赏
收藏
ByteArrayOutputStream关闭问题
ByteArrayOutputStream里面的close关闭无效,是一个空实现源码。那么有木有办法对其进行有效的关闭?不关闭对性能有影响吗? 项目经理问过我为什么关流问题了,,,但是这个流是关闭不掉的,所以在寻找如何有效关闭。而jdk既然让这个字节数组流关闭无效,那么自然有他的道理,那既然jdk的设计者们都没让他关,所以我在此一问性能问题的影响。共两个问题哈
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
绝不原创的飞龙
2017-12-01
打赏
举报
回复
JVM 可以监测托管内存的使用,所以如果你的一个类除了托管内存不占用其它东西,是可以完全交给 JVM 处理的。 StringWriter 也同理。 但是如果你不知道它是一个 ByteArrayOutputStream,只知道它是 OutputStream,那就没办法了。有功夫判断还不如直接 close()。
hmy468689496
2016-09-29
打赏
举报
回复
这个回答好,,就想问为啥不用关。虚拟的流,谢谢哈
小灰狼
2016-09-28
打赏
举报
回复
2
ByteArrayOutputStream/ByteInputStream 都是对内存中的字节数据的访问,只是一个虚拟的流,没有占用网络、磁盘文件等资源,所以没有关闭的必要,实现上也是空 但是,对流进行关闭是一个好习惯,或者说,你必须保证所有的 OutputStream 对象必须被调用 close
ByteArray
OutputStream
或
ByteArray
InputStream是可以不
关闭
的
因为
ByteArray
OutputStream
或
ByteArray
InputStream指向内存中的数据,不需要通过操作系统,所以虚拟可以直接进行垃圾回收。他的colse()方法中其实是空的,其字类ByteInputStream中有重写cloes()方法,但也只是调用了reset()方法,并没有实际的
关闭
什么资源,而这个流不用后被GC清除了之后也就不会占用别的什么资源; 所以及其严格的来说,并不是所有的IO流不
关闭
都会占用系统资源;只是一些像文件流会占用文件资源、数据库连接会占用连接池的连接...
XSSFWorkbook对象 进行zip打包时 用write资源流自动
关闭
处理办法
XSSFWorkbook对象的write方法内会将传入的资源流自动
关闭
导致下载excel失败 错误代码
OutputStream
out = response.get
OutputStream
(); Zip
OutputStream
zos = new Zip
OutputStream
(out); XSSFWorkbook workbook = new XSSFWo...
InputStream重用技巧(利用
ByteArray
OutputStream
)
InputStream重用技巧(利用
ByteArray
OutputStream
) 有时候我们需要对同一个InputStream对象使用多次。比如,客户端从服务器获取数据 ,利用HttpURLConnection的getInputStream()方法获得Stream对象,这时既要把数据显示到前台(第一次读取),又想把数据写进文件缓存到本地(第二次读取)。 但第一次读取InputS
POI通过 Workbook.write() 写入Zip
OutputStream
对象报流已
关闭
(Stream closed)的
问题
之前我是这样写的 /* ZipEntry zipEntry = new ZipEntry(scoreTaskEntity.getTeachingClassName() +i+ ".xls"); zipOut.putNextEntry(zipEntry); workBook.write(zipOut);*/ //zipOut.closeEntry()...
ByteArray
Stream需要
关闭
的
问题
在项目中需要把生成出来的二维码图片放到OSS中,所以要进行流处理。
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章