zoukankan      html  css  js  c++  java
  • IO处理要注意的事:关闭资源!关闭资源!关闭资源!

    案例1:

    现象:

      同事做本地txt数据切分然后处理,发现删除本地临时文件目录中的文件时,有时成功,有时删除完了发现文件还在。代码各处都不报错,且各种日志打印正常。

    解决:

      最后发现,是业务逻辑代码中有一处FileInputStream流读取文件后,没有关流,导致的。

    --------

    案例2:

    现象:

      同事往远程FTP服务器上上传txt文件,在两处业务逻辑中调用同一个上传工具类方法(此方法为他自己写的),发现一个可以成功上传,而另一处调用上传完FTP上没有文件。

    解决:

      各种折腾,最后发现,因为其使用的是在业务逻辑代码前先建立连接到FTP,然后在下面的业务逻辑中各种操作,然后有的地方建立连接后,又 ftpClient.logout(); 退出了,而有的地方使用完,却没有 ftpClient.logout();

    总结:

    使用IO时,一定要注意,各种流在使用完一定要马上关闭,否则在复杂的代码中可能造成各种不易查找的奇怪问题。

    使用远程连接(如FTP)时,一定要注意资源的打开和关闭要成对出现。最好把每种操作都封装成独立的打开资源、处理资源、关闭资源一个方法中。尽量不要打开资源后就一通几百行代码的操作,最后也不知道在哪需要关闭资源。

  • 相关阅读:
    java 中的锁 -- 偏向锁、轻量级锁、自旋锁、重量级锁(转)
    MySQL存储引擎--MyISAM与InnoDB区别
    Socket详解
    Java线程池参数
    Java反射机制(转)
    java注解
    docker入门实例
    docker常用命令总结
    showdoc 自动脚本安装
    [mysql]You must reset your password using ALTER USER statement before executing this statement.
  • 原文地址:https://www.cnblogs.com/libin6505/p/10675149.html
Copyright © 2011-2022 走看看