Java 所有流都得在用完后关闭,避免造成资源浪费及攻击。

最老的try - catch - finally 很不优雅

private void trt_catch_finally(){

String filepath = "a.xml";

BufferedReader bf = null;

try {

bf = new BufferedReader(new FileReader(filepath);

String str;

// 按行读取字符串

while ((str = bf.readLine()) != null)

System.out.println(str);

} catch (Exception e) {

}

finally {

if(null != bf){

try {

bf.close();

} catch (IOException e) {

}

}

}

}

后来有段时间接触了org.apache.commons.io.IOUtils,会简洁一点点。点进源码看是他帮我们封装好了

private void IOUtils(){

String filepath = "a.xml";

BufferedReader bf = null;

try {

bf = new BufferedReader(new FileReader(filepath);

String str;

// 按行读取字符串

while ((str = bf.readLine()) != null)

System.out.println(str);

} catch (Exception e) {

}

finally {

IOUtils.closeQuietly(bf);

}

}

现在JDK7后,有了最新的try-with-resource,可以直接省略了关流,由JVM去处理

private void try_with_resource(){

String filepath = "a.xml";

try (BufferedReader bf = new BufferedReader(new FileReader(filepath))) {

String str;

// 按行读取字符串

while ((str = bf.readLine()) != null)

System.out.println(str);

} catch (Exception e) {

}

}

java关闭流方法,Java关闭流方法总结相关推荐

  1. java preparedstatement 关闭_java - 如果基础连接已关闭,为什么isClosed()方法对PreparedStatements不返回true? - 堆栈内存溢出...

    就像标题所说的那样,我想知道为什么准备好的语句.isClosed()方法在关闭基础流(使用JDBC)后将返回false. public void someTest() throws SQLExcept ...

  2. java 输入流关闭顺序_Java IO流中先关闭输出流还是先关闭输入流?为什么?

    java中需要手动释放的资源bai常见的有以下两个: 流相du关资zhi源 流相关资源一般遵循: 1)先开后关dao,先开的输入流,再开的输出流,通过读取输入流写入输出流中,那么应该先关输出流,再关输 ...

  3. java 流已被关闭_mybatis oracle java.sql.SQLException: 流已被关闭问题

    /** * 按照页码取值(从current_page页开始,每页page_size条) * @param key * @param params * @param current_page * @pa ...

  4. java(九)-方法引用, Stream流,File类 , 递归 ,字节流

    day09[方法引用.Lambda表达式.Stream流] 今日目标 线程状态 等待与唤醒 Lambda表达式 Stream流 教学目标 能够说出线程6个状态的名称 能够理解等待唤醒案例 能够掌握La ...

  5. java SE(十一)——File、方法递归、IO流

    File.方法递归.IO流 File(定位.操作文件) 前言 File类概述 File类的常用API 判断文件类型.获取文件信息 创建文件.删除文件功能 遍历文件夹 方法递归 递归的形式和特点 递归的 ...

  6. java中logger关闭log_Log4J如何关闭Logger对象的IO流资源

    之前,在做一个项目时,客户要求在接口中对各个交易每天在monitor.trans.service三个目录下生成日志文件,monitor按日期生成文件碎片,trans每天按照日期生成一个目录,在该目录下 ...

  7. java 流式FlowLayout布局换行方法

    java 流式FlowLayout布局换行方法 怎么简单怎么来 方法一 add(new JLabel(" ")); //添加空白标签来实现换行 空白标签的空格数量由你来决定 方法二 ...

  8. [重学Java基础][Java IO流][Exter.2]IO流中几种不同的读写方法的区别

    [重学Java基础][Java IO流][Exter.2]IO流中几种不同的读写方法的区别 Read 读入方法 read(): 一般是这种形式 public int read() 1.从流数据中读取的 ...

  9. Java的Stream流编程的排序sorted方法里参数o1,o2分别代表什么?

    先说结论:在sorted方法中,o1是最后面的元素,o2是倒数第二个元素,以此类推,流是处理元素是从后面开始取值. package com.br.itwzhangzx02.learn;import o ...

  10. java弹窗 触发事件_关于ElementUI中MessageBox弹框的取消键盘触发事件(enter,esc)关闭弹窗(执行事件)的解决方法...

    好久没见了 在项目中遇到一个小小的需求,总结了一下! 详细我就不介绍了,相信大家用过的话,很了解.详见文档-----------> http://element-cn.eleme.io/#/zh ...

最新文章

  1. Learning by doing 系列文章(之一)如何在 Python 中使用 epoll ?
  2. AliOS Things KV组件的写平衡特性
  3. android lottie字体json,lottie-android
  4. Extjs time
  5. 判断给定森林中有多少棵树特别版
  6. nltkdata路径设置linux,NLTK data路径设置
  7. 计算机有什么著名基金经理排名,百万年薪的基金经理,都是什么专业出身?!...
  8. 瑞晟蓝牙来电语音软件下载_拥有无数功能的工具箱软件
  9. POJ3628:Bookshelf 2【01背包】
  10. 挑战《IT我最大》Windows 7由你秀 活动的丑恶行径
  11. Linux内核开发_内核模块
  12. 一例Ext4文件系统fsck后损坏的修复过程
  13. 凯撒密码(移位密码)
  14. h5页面分享一(附源码)
  15. (附源码)node.js游云旅游网站 毕业设计 231547
  16. 微信安卓6.5.3以上版本网页上传不了图片的解决方案
  17. 系统工程--011详细设计 伪码 程序流程图 PAD图 N-S图 判断表和判断树
  18. 微信小程序input禁止输入特殊表情符号与空格
  19. 使用dig/nslookup命令查看dns解析详情
  20. 在Word中隐藏文字

热门文章

  1. 【数学建模】基于matlab模拟十字路口车辆通行【含Matlab源码 1106期】
  2. 【优化求解】基于matlab蚁群算法的函数优化分析【含Matlab源码 219期】
  3. python 姿势估计_Python中的实时头姿势估计
  4. 数据库连接html文件路径,Python+Flash+MySQL+HTML链接数据库查询,pythonflaskmysqlhtml,连库...
  5. 微型计算机主要特点,微型计算机数字控制的主要特点.ppt
  6. python 矩阵点乘_Python之Numpy库基础——矩阵运算
  7. python计算机视觉库_荐 python计算机视觉入门
  8. mac中 安装mysql无法启动_Mac 下安装MySQL(dmg方式),无法启动
  9. python工厂方法_Python设计模式:工厂方法模式初探
  10. mysql event查询_Mysql中Event的一些测试