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()

  • 相关阅读:
    迷你资源管理器
    简单工厂和单例的一些事
    面向对象的七大原则
    继承和多态的一些事
    体检套餐系统
    信仰
    魔兽争霸系统
    优化MySchool总结习题
    事务,视图及索引
    [LeetCode] Combinations
  • 原文地址:https://www.cnblogs.com/JunFengChan/p/6810820.html
Copyright © 2011-2022 走看看