zoukankan      html  css  js  c++  java
  • Java的IO操作之关闭流

    我们知道,当结束对一个流的操作时,需要调用流的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()

  • 相关阅读:
    HDOJ 1846 Brave Game
    并查集模板
    HDU 2102 A计划
    POJ 1426 Find The Multiple
    POJ 3278 Catch That Cow
    POJ 1321 棋盘问题
    CF 999 C.Alphabetic Removals
    CF 999 B. Reversing Encryption
    string的基础用法
    51nod 1267 4个数和为0
  • 原文地址:https://www.cnblogs.com/JunFengChan/p/6810820.html
Copyright © 2011-2022 走看看