博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java的IO操作之关闭流
阅读量:6657 次
发布时间:2019-06-25

本文共 703 字,大约阅读时间需要 2 分钟。

我们知道,当结束对一个流的操作时,需要调用流的close()方法对其进行释放,这将释放掉与这个流有关的所有资源,包括文件句柄、端口等。如果不关闭流,垃圾回收机制将无法识别你是否已使用完这个文件,读取的文件会占用内存无法释放,造成内存泄露。

在Java 6和之前版本,常用的做法是在finally模块中关闭流,如下:

OutputStream out=null;try{    out = new FileOutputSteam("/data.txt");    //流的处理}catch(IOException ex){    System.err.println(ex.getMessage());}finally{    if(out!=null){        try{            out.close();        }catch(IOException e){            // 记录        }    }}

这种方式叫做“释放模式”。

而到了Java 7,提供了一种更简便的实现方法:

try(OutputStream out=new OutputSteam("data.txt")){    //流的处理}catch(IOException ex){    System.err.println(ex.getMessage());}

这种方法不需Finally块,Java会对try块参数表中声明了AutoCloseable对象自动调用close()

转载于:https://www.cnblogs.com/JunFengChan/p/6810820.html

你可能感兴趣的文章
SUSE下nx nomachine安装配置
查看>>
精通脚本***学习笔记(二)
查看>>
我的友情链接
查看>>
shell数组常见操作
查看>>
typedef用法
查看>>
oracle基本操作语句(初学者语句)
查看>>
【Android必备】应用小部件概述(23)
查看>>
【Interface&navigation】材料设计(20)
查看>>
我要学python之生成器
查看>>
ubuntu 13.04 安装QQ
查看>>
IOS图片的拉伸技巧
查看>>
tomcat安装
查看>>
KVM虚拟化的部署及使用
查看>>
Linux软链接和硬链接文件
查看>>
semaphore.h
查看>>
java学习笔记 --- 网络编程(套接字)
查看>>
tkinter 03 Listbox 列表部件
查看>>
Linux磁盘管理命令介绍
查看>>
一锤定音:高通(Qualcomm)370亿美元收购NXP,成为全球第一大汽车芯片供应商...
查看>>
JVM工作原理学习笔记
查看>>