java中关于流开闭的一些事

转载自同事张文兵,希望好的分享能够扩散!


发现小伙伴们的程序对资源清理一点都不规范,比如数据库连接、文件流等,这些资源都是特别珍贵的,使用完了就一定要关闭!在这里给小伙伴做一个分享,少走一些弯路:
文件流关闭分析
1,错误范例1:


在以上代码中,如果在(1)中发生了异常,那么流就得不到关闭,这是非常危险的。
提醒:
关闭流是无乱如何都要做的事情,不管之前的代码是否发生了异常,所以我们应该把关闭流的操作放在finally语句中。

2,关闭流改进1:


那么,只要放到finally语句中就行了吗?显然不是,以上代码还是有问题!如果流没有打开,即in==null,那么将会出现空指针异常。
注意:
在程序中,我们要使用数据,一定要遵循先检查再使用的原则,不然会出现各种各样难以预期的问题。

3,关闭流改进2:


以上的代码消除了空指针异常,就是完美的代码吗?当然不是,我们知道流关闭也会抛出异常,假如以上的(1)抛出了异常,那么(2)将不会执行,也就是(2)得不到关闭,可以想象是多危险了吧?

4,完美关闭流范例:


也就是:
(1)放在finally语句中;
(2)先校验数据,再使用;
(3)一个关闭使用一个try catch语句,这样,无乱之前的流关闭是否正常进行,后面的流关闭语句都会执行到。

代码谁也会写,但是我们要的是安全、简洁、可读性高、易扩展代码,作为程序员,代码就是我们的脸面,让我们一起美容吧!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值