try(){}的简单理解
以前使用try catch-finally都是捕获异常,然后流关闭等等,代码总是这样的:好比往FileOutputStream写东西:
@Testpublic void test2() throws IOException {File file = new File("E://test");if (!file.exists()) {file.createNewFile();}FileOutputStream fileOutputStream = new FileOutputStream(file);try {System.out.println("do something...");fileOutputStream.write("aaa".getBytes());fileOutputStream.flush();} catch (Exception e) {System.out.println("do ...");} finally {fileOutputStream.close();}}
这样写很难受,可以进行优化,将FileOutputStream fileOutputStream = new FileOutputStream(file)放到try()里面,也可以放多个,
@Testpublic void test2() throws IOException {File file = new File("E://test");if (!file.exists()) {file.createNewFile();}try( FileOutputStream fileOutputStream = new FileOutputStream(file);) {System.out.println("do something...");fileOutputStream.write("aaa".getBytes());fileOutputStream.flush();} catch (Exception e) {System.out.println("do ...");} }
try()里每个声明的变量类型都必须是Closeable的子类,就一个close方法;相当于系统自动将关闭操作放到了finally里面而不需要我们自己写了,很nice;
try(){}的简单理解相关推荐
- android 点击事件消费,Android View事件分发和消费源码简单理解
Android View事件分发和消费源码简单理解 前言: 开发过程中觉得View事件这块是特别烧脑的,看了好久,才自认为看明白.中间上网查了下singwhatiwanna粉丝的读书笔记,有种茅塞顿开 ...
- 【转载】Deep learning:十九(RBM简单理解)
Deep learning:十九(RBM简单理解) 这篇博客主要用来简单介绍下RBM网络,因为deep learning中的一个重要网络结构DBN就可以由RBM网络叠加而成,所以对RBM的理解有利于我 ...
- 学习:双机热备、集群、负载均衡、SQL故障转移群集简单理解(转)
双机热备.集群.负载均衡.SQL故障转移群集简单理解平常,大家常提到几个技术名词:双机热备.集群.负载均衡.SQL故障转移群集.这里,就我的理解,和大家简单探讨下,有不足或错误之处还请各位指出! 这些 ...
- 字符串匹配算法Java_如何简单理解字符串匹配算法?
这篇文章来说说如何简单理解KMP,BM算法.之前看过一些文章说,KMP算法很难理解. 可我并不觉得. 我反而觉得它容易理解.平时我们写java代码的时候, 判断一个字符串是否存在包含另一个字符串都是直 ...
- python yield的简单理解
2019独角兽企业重金招聘Python工程师标准>>> yield是个生成器,它可以使一个方法变成可迭代的方法,每次迭代返回yield后面的值 简单理解: >>>d ...
- linun——SElinux的简单理解
SElinux简单理解 一.什么是SElinux? SELinux 全称 Security Enhanced Linux (安全强化 Linux),是 MAC (Mandatory Access Co ...
- git pull 是到工作区还是暂存区_每天一Git之简单理解工作区和暂存区
每天一Git之简单理解工作区和暂存区 1. 工作区与暂存区命令初体验 1.1. 暂存区文件与文件夹管理 [root@number ~]# cd GitDir/git_learning/ [root@n ...
- c语言理解参数,c语言中对可变参数列表的简单理解
函数原型中一般情况下参数的数目是固定的,但是如果想在不同的时候接收不定数目的参数时该怎么办呢?c语言提供了可变参数列表来实现. 可变参数列表是通过宏来实现的,这些宏定义在stdarg.h的头文件中.头 ...
- QGraphicsScene 的简单理解--关于手册的简要翻译
文章目录 QGraphicsScene 的简单理解--关于手册的简要翻译 简介: 一般操作: 关于scene's bounding rect: the location of items. scene ...
- QTextStream 的简单理解
文章目录 QTextStream 的简单理解 QTextStream类提供了使用QIODevice读写文本的基本功能. 还有一种通常的用法就是控制台命令的读写 除了QTextStream的构造函数,还 ...
最新文章
- 5 个越早知道越好的 Python 特性
- 浏览器根据什么来判定脚本失控?
- oracle给换服务器,Oracle数据库更换服务器10分钟切换方案
- SAP中会计凭证和物料凭证的对应关系
- debian命令乱码_Debian 9.5 解决中文显示乱码
- Linux性能监测(系统监测统计命令详解)
- 谁说国产操作系统没救了? | 人物志
- Python学习1----在win系统中搭建Python编程环境
- 子类能不能继承父类的成员变量
- 什么是Windows Azure
- python调用WinRAR暴力获取压缩密码 用网址做解压密码
- java学习笔记(7)
- 关于超实数单子的说明
- 清华大学交叉信息研究院姚班修改培养模式:姚班、智班、量信班全合并
- Ubuntu命令下卸载软件
- 一、mongoDB window64 百度网盘资源下载,及安装教程
- word2010 标尺游标的微调
- #SORA#celery原生配置文件研究
- linux sigaction函数 sa_flags的值
- Android使用Shape实现简单的三角和圆形等