我刚刚在当前的Eclipe Juno Release Candidate中打开了一些旧代码,并注意到一个闪亮的新警告:资源泄漏.它是由这样的代码触发的:

FileChannel out = new FileOutputStream(file).getChannel();

try

{

...Do something with out...

}

finally

{

out.close();

}

Eclipse认为创建的文件输出流是资源泄漏.实际上我不确定这是否是一个错误警告(并且FileChannel的close方法也不会关闭流)或者这是否真的是资源泄漏.我将代码更改为:

FileOutputStream outStream = new FileOutputStream(file);

try

{

FileChannel out = outStream.getChannel();

...Do something with out...

}

finally

{

outStream.close();

}

警告现在消失了,但现在我不确定是否必须调用FileChannel的close方法.所以它可能看起来像这样:

FileOutputStream outStream = new FileOutputStream(file);

try

{

FileChannel out = outStream.getChannel();

try

{

...Do something with out...

}

finally

{

out.close();

}

}

finally

{

outStream.close();

}

如果使用文件输入通道和文件输出通道,那么这将导致四个嵌套的try … finally块,并且它们都会变得臃肿.

你怎么看?是否真的有必要关闭频道和流?或者正在关闭足够的流?

java file 如何关闭,java – 如何正确关闭从FileOutputStream获取的FileChannel相关推荐

  1. 已解决:An error occurred at line: 1 in the generated java file The type java.io.ObjectInputStream canno

    tomcat报错 An error occurred at line: 1 in the generated java file The type java.io.ObjectInputStream ...

  2. Java多线程学习九:如何正确关闭线程池?shutdown 和 shutdownNow 的区别

    如何正确关闭线程池?以及 shutdown() 与 shutdownNow() 方法的区别?首先,我们创建一个线程数固定为 10 的线程池,并且往线程池中提交 100 个任务,如代码所示. 复制代码 ...

  3. java file.separator_关于Java的File.separator

    一.File类 在Windows下的路径分隔符(\)和在Linux下的路径分隔符(/)是不一样的,当直接使用绝对路径时,跨平台会报No Such file or diretory异常. File中还有 ...

  4. JAVA——TCP连接中Socket的正确关闭方式

    基本概念 TCP协议:Transmission Control Protocol 传输控制协议TCP是一种面向连接(连接导向)的.可靠的.基于字节流的运输层(Transport layer)通信协议, ...

  5. java exec 关闭_如何正确关闭java ExecutorService

    从ExecutorService的 Oracle API文档页面推荐的方法:void shutdownAndAwaitTermination(ExecutorService pool) { pool. ...

  6. java file list listfiles,Java File listFiles()用法及代码示例

    listFiles()方法是File类的一部分.如果路径名是目录,则该函数返回一个File数组,表示给定抽象路径名中的文件,否则返回null.该函数是重载函数.其中一个函数没有任何参数,第二个函数将F ...

  7. 关闭“Chromium 未正确关闭”提示

    平时使用,意外关闭Chrome浏览器后再次打开会有此提示,手动关闭就好了. 但是自动化流程遇到后,可能会造成一些麻烦,需要关闭此提示框. 在Chrome浏览器安装目录下找到Preferences文件: ...

  8. java 文件流关闭 finally_Java如何正确的使用try catch finally关闭文件流的总结

    上学的时候,也许老师告诉你用完文件流记得要关闭,可能为了省事,他也没仔细的给你示范如何关闭, 实际开发中,要是不能正确关闭流,服务器分分钟炸掉,那是很正常的. 一般都是新人才会有这个问题.当然都是从新 ...

  9. Java高并发编程:取消和关闭

    Java没有提供任何机制来安全地终止线程,但是它提供了中断(Interruption).这是一种协作机制,能够使一个线程终止另一个线程当前的工作. 在对一个线程对象调用Thread.interrupt ...

最新文章

  1. 公司电脑安装操作系统遇到的一个坑
  2. Hadoop三种安装模式
  3. 吴恩达团队发起X射线AI诊断竞赛,这家中国公司登上了榜首
  4. 怎么点亮段码屏_段码液晶屏有鬼影怎么处理?
  5. Apache Kylin VS Apache Doris
  6. c++ 求2-100内的素数问题
  7. 高等院校计算机考试等级,全国高等院校计算机等级试考试大纲.doc
  8. 连载丨《极简设计:苹果崛起之道》——硅谷伊甸园(二)
  9. freeswitch 配置动态会议的注意事项
  10. JVM监控及诊断工具GUI篇之Arthas(五):其他指令
  11. 《数据结构与抽象:Java语言描述(原书第4版)》一2.2 使用可变大小的数组实现ADT包...
  12. 微信 iOS 收款到帐语音提醒开发总结
  13. Unity接入腾讯云
  14. 用什么c语言语句直接跳出if,C语言中怎样跳出if语句
  15. 获取当前经纬度 和 通过经纬度 得到大致位置的接口
  16. 金融产品经理的新方向:供应链金融
  17. 2022-2028全球造水机市场现状及未来发展趋势
  18. hpux oracle19c dbca DBT-05509 Failed To Connect To The Specified Database
  19. 来信, 创业 和 移动互联网
  20. 关于微信小程序开发个人总结

热门文章

  1. Comprehensive anticancer drug response prediction based on a simple cell line drug complex network m
  2. Assembly and diploid architecture of an individual human genome via single-molecule technologies
  3. linux ip rcv处理,linux ip选项处理(二)
  4. mysql 备份压缩数据库_备份压缩mysql 数据库
  5. Python与C语言基础对比(Python快速入门)
  6. 1.AutoRec: Autoencoders Meet Collaborative Filtering论文解读以及AutoRec代码实现(pytorch)
  7. 12.前K个高频元素---使用优先队列和哈希表解决
  8. 目标检测--Focal Loss for Dense Object Detection
  9. Linux系统时间同步:ntpdate--在内网中同步时间
  10. android studio api30 模拟器运行不了_iOS模拟器来了?但我们劝你不要轻易尝试