Java中使用try代码块自动关闭各种流(IO流……)
推荐写在 try 的括号中
/** 方式一、方式二是等价的
* <li>推荐使用方式一</li>
* @since 2023/5/18 0018
* @author CC
**/
public void closeStream() throws IOException {
//使用方式一(推荐):各种“流”,这些流都是需要关闭的。
// -> 这些流会自动关闭。这些流的作用域仅在这个try代码块中
try (POIFSFileSystem poifsFileSystem = new POIFSFileSystem();
InputStream byteInputStream = new ByteArrayInputStream(new byte[1]);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
){
//业务……使用:poifsFileSystem、byteInputStream、outputStream
} catch (Exception e) {
e.printStackTrace();
}
//使用方式二:各种“流”,这些流都是需要关闭的。
// -> 这些流需要手动关闭
POIFSFileSystem poifsFileSystem = new POIFSFileSystem();
InputStream byteInputStream = new ByteArrayInputStream(new byte[1]);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
try {
//业务……使用:poifsFileSystem、byteInputStream、outputStream
} catch (Exception e) {
e.printStackTrace();
}finally {
poifsFileSystem.close();
byteInputStream.close();
outputStream.close();
}
}
Java中使用try代码块自动关闭各种流(IO流……)的更多相关文章
- 2.java中c#中statc 静态调用不同之处、c#的静态构造函数和java中的构造代码块、静态代码块
1.java和c#静态成员调用的不同之处 static 表示静态的,也就是共享资源,它是在类加载的时候就创建了 java中 可以通过实例来调用,也可以通过类名.成员名来调用,但是一般最好使用类名. ...
- java中的静态代码块、构造代码块、构造方法
运行下面这段代码,观察其结果: package com.test; public class HelloB extends HelloA { public HelloB() { } { System. ...
- Java中的构造代码块
代码块 ----a静态代码块 ----b构造代码块 ----c普通代码块 执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. a.静态代码块: 静态代码块 ...
- java中静态的代码块,静态变量,静态方法
简单了解一下java虚拟机--jvm几个内存区域: 方法区:在java的虚拟机中有一块专门用来存放已经加载的类信息.常量.静态变量以及方法代码的内存区域, 常量池:常量池是方法区的一部分,主要用来存放 ...
- Java中的局部代码块、构造代码块、静态代码块
局部代码块: 作用:控制变量的生命周期: 在程序中,当我们已经使用完 x 后,并且在接下来的代码中,不会再用到x,那么就没必要让x 在内存中占用空间了,这用情况下,可以使用 局部代码块,将x及其所设计 ...
- java中的静态代码块等执行顺序
http://www.cnblogs.com/naruto469/p/3608459.html public class Print { 2 3 public Print(String s){ 4 S ...
- java中的static代码块为什么只执行一次
原因在最后,这是其中的一个小例子. 如: SessionFactory负责保存和使用所有配置信息,消耗内存资源非常大 所以一个web项目要保证只创建一个SessionFactory 那么在使用hibe ...
- 5.1JAVA基础复习——JAVA中的静态代码块、构造代码块、构造函数、局部代码块区别
构造代码块: 在类中定义可以给所有对象进行初始化.局部代码块: 在方法中定义属性的生命周期.静态代码块: 在类中定义用于给类调用时属性的初始化 构造函数与构造代码块的区别: 构造函数是给对应的对象进行 ...
- java中,静态代码块static的简单简介
直接上代码,更直观,包括一些解释: /** * 类初始化时,首先加载静态代码块, * 注意:所有静态代码块都会在方法之前执行,不管放置的位置:但是静态代码块按照顺序执行 * 再次执行调用的方法 */ ...
- 6、java中的构造代码块
/* 演示构造代码块的应用 */ class Person { String name; int age; //构造代码块 { cry(); } Person(String name, int age ...
随机推荐
- Web Audio API 第2章 完美的播放时机控制
Web Audio API 第2章 完美的播放时机控制 相较于 标签, Web Audio API 拥有低延迟精确定时模型. 低延时对于游戏或交互式应用来说非常重要,因为交互操作时要快速响应给用户的听 ...
- 【Oracle】Oracle表空间数据文件大小设置
Oracle数据文件默认大小上限是32G,如果要数据文件大于32G,需要在数据库创建之初就设置好. 表空间数据文件容量与DB_BLOCK_SIZE有关,在初始建库时,DB_BLOCK_SIZE要根据实 ...
- Linux服务器下启动和关闭node
首先将node工程的代码和node_modules目录上传到服务器的某一个目录下 1.用forever 进行管理 前提:linux下已经安装了node npm install -g forever / ...
- Mac M芯片下载centos7的iso镜像
1.登陆Centos官网下载镜像 https://www.centos.org/download/ 这里需要下载ARM框架点击进入: 点击进入选择一个镜像仓库进行下载: http://isoredir ...
- 【问题解决1】fatal error: X11/XXXX.h: No such file or directory
问题现象 编译鸿蒙代码时,报如下类似的错误: 错误1: 错误2: 解决方法 step 1:安装依赖文件 sudo apt-get install apt-file sudo apt-file upda ...
- ubuntu 联网
使用NAT
- #状压dp#C 计划带师
分析 状压dp显然,主要是字典序的问题, 考虑初态终态转换就可以保证字典序最小了 代码 #include <cstdio> #include <cctype> #include ...
- C# 中一维数组和二维数组详解
String[][]是二维数组.例如:String[][] str=new String[4][4],这是创建了一个有bai4行4列元素的数组. String[]代表一维数组.例如:String[] ...
- k8s之Pod
什么是Pod 通俗的来讲就是以pause为基础容器,其它容器共享pause容器的网络名称空间.主机名以及进程间通信,组成的一个逻辑的容器集合. • Kubernetes Pod是Kubernetes的 ...
- Windows XP Vmware 无法自适应窗口
之前在吾爱破解上找到一个 WindowsXP SP3 的精简系统(目前找不到在哪了),自带 VMtools 和 52 破解工具包,很适合 XP 系统下的逆向和病毒分析.目前准备学习一下<恶意代码 ...