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

  • 相关阅读:
    css滚动条设置
    动态背景插件three.min.ts
    富文本编辑器ckeditor使用(angular中)
    angular接口传参
    angular组件图标无法显示的问题
    angular项目搭建
    使用Flume
    centos7 安装Flume
    centos7 安装kubernetes
    Nginx的rewrite对地址进行重写
  • 原文地址:https://www.cnblogs.com/JunFengChan/p/6810820.html
Copyright © 2011-2022 走看看