有如下代码:

private static String extractContent(HttpResponse response) throws Exception {

String htmStr = null;

if (response.getStatusLine().getStatusCode() == 200) {

if (response != null) {

BufferedReader br = null;

InputStream ins = null;

代码中的br 和ins都正确的关闭掉了。但是在使用InputStreamReader的时候,是通过

br = new BufferedReader(new InputStreamReader(ins, "UTF-8"));

来使用的,那么InputStreamReader是否需要显示的关闭,即改成:

private static String extractContent(HttpResponse response) throws Exception {

String htmStr = null;

if (response.getStatusLine().getStatusCode() == 200) {

if (response != null) {

BufferedReader br = null;

InputStream ins = null;

InputStreamReader inr = null;

try {

HttpEntity entity = response.getEntity();

ins = entity.getContent();

inr = new InputStreamReader(ins, "UTF-8");

br = new BufferedReader(inr);

StringBuffer sbf = new StringBuffer();

String line = null;

while ((line = br.readLine()) != null) {

sbf.append(line);

}

我知道在JDK7之后提供了try with resources的方法解决了这种问题,但是在JDK7之前是不是必须的这样用,显示的分别new相应流对象,然后最后再关闭,而不能

br = new BufferedReader(new InputStreamReader(ins, "UTF-8"));

像这样嵌套这来用。

我的问题:

1.如果没有流关闭,会带来安全隐患,具体带来何种安全隐患?最好能举例说明。还有说没有正确的关闭流,会造成系统资源的浪费,具体是指什么?(我的理解是浪费CPU资源,导致CPU轮询去查询是否有I/O传输,这样的理解对不对啊)??

2.jdk1.7之前,流的使用,是不是必须要用这种结构:

BufferedReader ins = null;

InputStreamReader inr = null;

try{

ins = ...

inr = ...

}catch{

...

}finally{

if(null != ins) ins.close;

if(null != inr) inr.close;

}

而不能使用这样的结构:

BufferedReader ins = null;

try{

ins = new InputStreamReader(new InputStrea(System.in, "UTF-8"));

}catch{

...

}finally{

if(null != ins) ins.close;

}

java中流关闭如何打开_关于java中流关闭的问题相关推荐

  1. java强制使用ie打开_使用标记强制关闭IE兼容模式

    我正在为在所有Intranet站点上强制兼容模式的客户端工作. 我想知道是否有一个标签,我可以放入我的HTML,强制兼容模式关闭. #1楼 如果您正在使用Intranet区域中的页面,您可能会发现IE ...

  2. 【源码+图片素材】Java王者荣耀游戏开发_开发Java游戏项目【王者荣耀】1天搞定!!!腾讯游戏_Java课程设计_Java实战项目_Java初级项目

    王者荣耀是当下热门手游之一,小伙伴们是否想过如何制作一款属于自己的王者荣耀游戏呢? 本课程讲解了一个王者荣耀游戏的详细编写流程,即使你是刚入门Java的新手,只要你简单掌握了该游戏所需要的JavaSE ...

  3. java如何关闭线程池_如何优雅的关闭Java线程池

    ⾯试中经常会问到,创建⼀个线程池需要哪些参数.线程池的工作原理,却很少会问到线程池如何安全关闭的. 也正是因为⼤家不是很关注这块,即便是⼯作三四年的⼈,也会有因为线程池关闭不合理,导致应用⽆法正常st ...

  4. java pdf 转txt文件怎么打开_纯Java实现PDF转txt文件

    展示这个Demo的原因是一哥们需要我帮他把一些PDF格式的资料转为txt,我在网上找了下在线的工具,都不好用,网上大多数的在线pdf转txt文件都需要付费,而免费的一次转换文件大小不能超过2M,比较痛 ...

  5. java itext 导出pdf文件_【Java,PDF】使用Itext实现PDF文件生成

    重要声明:本文章仅仅代表了作者个人对此观点的理解和表述.读者请查阅时持自己的意见进行讨论. 前言 有时候,业务系统要求提供一个PDF文件导出的功能,这时候我们就需要将数据库的对应数据查询出来,然后生成 ...

  6. java 取栈顶元素_《Java实战之内存模型》详解篇

    内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行 JVM内存布局规定了Java在运行过程中内存申请.分配.管理的策略,保证了JVM的高效稳定运行 不同的JV ...

  7. java 多态判断非空_收藏Java 面试题全梳理

    脚本之家 你与百万开发者在一起 来源 | Java建设者(ID:javajianshe) 作者 |cxuan 如若转载请联系原公众号 Java 基础篇 Java 有哪些特点 并发性的:你可以在其中执行 ...

  8. java文件和xml文件_用Java分割大型XML文件

    java文件和xml文件 上周,我被要求用Java编写一些东西,该东西能够将一个30GB的XML文件拆分为可配置文件大小的较小部分. 文件的使用者将是一个中间件应用程序,该应用程序在XML的大尺寸方面 ...

  9. java se好用吗_利用 Java SE 7 更好地管理资源

    2011 年 5 月发布 作者:Julien Ponge 本文介绍 Java 7 针对自动资源管理问题给出的解决办法,即 Coin 项目中提出的新语言结构 try-with-resources 语句. ...

最新文章

  1. 加速OA系统实施的四大要素
  2. 【noqsl】beansdb的分布式实现~简单粗暴有效~
  3. 博客园添加访问人数统计超详细教程
  4. [转]史上最全的CSS hack方式一览
  5. php异步传输,php 异步处理-上传文件
  6. spring四种依赖注入方式
  7. supervisor安装和配置
  8. 我的世界java版和基岩版对比_基岩版Beta1.11.0.1发布
  9. C#调用带结构体指针的C Dll的方法
  10. Asp.Net 4.0 SEO增强之UrlRouting
  11. Android学习——SharedPreferences
  12. k8s和mysql怎么通信_k8s中的网络通信总结
  13. Kafka原理以及分区分配策略剖析
  14. maven仓库repositories和mirrors的配置及区别详解(轻松搞明白)
  15. Linux下安装宋体
  16. WORD中的项目符号实例详解(多图)
  17. Mac升级python3版本
  18. 年末高压叠加“阳”后虚弱,双重压力下的测试者们该何去何从
  19. table表格数据绑定
  20. 整理-如何在solution manager里面删除未传到生产的请求

热门文章

  1. Flex in a Week系列视频教程中文版发布
  2. 没业绩怎么写好年终总结?这样写总结年终奖翻倍!
  3. 声明式智能推荐系统应用架构探索
  4. 【实践篇】推荐系统之矩阵分解模型-腾讯技术
  5. 全球首发!惯性导航导论(剑桥大学)第四部分
  6. 数据挖掘竞赛,算法刷题网址汇总
  7. android常用的工厂模式,Android的设计模式-简单工厂模式
  8. Leetcode每日一题:24.swap-nodes-in-pairs(两两交换链表中的节点)
  9. ROS入门-16.tf坐标系广播与监听的编程实现
  10. Stanford CS230深度学习(七)RNN和LSTM