try { FileInputStream in = new FileInputStream(filename);

BufferedReader reader=new BufferedReader(new InputStreamReader(in));

String line;

while((line=reader.readLine())!=null){

// read the file

}

}

catch (Exception e) {

System.out.println(e);

}

但是如果我尝试将命令添加为close,那么在文件读完之后,我就得到了错误:

in.close();

Error:(131, 9) java: cannot find symbol

symbol: variable in

location: class ReadFile

我在使用后搜索了清洁对象,并在程序结束前需要关闭文件.并在Java上发现了几个帖子,但很多都非常矛盾.关键是,最后我感到非常困惑.

我错了,或者Java编程有点模糊和混乱?我的意思是,显然没有真正使用destructor,使用finalize是非常值得怀疑的,并且close的使用也被认为是不必要的.关于这些问题的一些帖子是矛盾的和非决定性的.

那么,如何在这里继续?在我真的需要关闭文件的情况下,如何摆脱这个错误信息?关闭文件真的可有可无和不必要吗?如何为程序完成清理类实例?

解决方法:

您收到错误是因为您在try块内部定义了变量,因此它在catch / finally /或try之外的任何地方都不可见.将声明移到外面试试:

改变这个

try { FileInputStream in = new FileInputStream(filename);

FileInputStream in = null;

try { in = new FileInputStream(filename);

标签:java,file-io,class,code-cleanup,finalize

来源: https://codeday.me/bug/20190716/1477358.html

java finalize 析构_close,析构函数和finalize:Java矛盾相关推荐

  1. Java 到底有没有析构函数呢?

    Java 到底有没有析构函数呢? ​ ​ Java 到底有没有析构函数呢?我没能找到任何有关找个的文档.如果没有的话,我要怎么样才能达到一样的效果? ​ ​ ​ 为了使得我的问题更加具体,我写了一个应 ...

  2. java finalize逃脱_finalize(),析构函数(finalization)

    对象生存还是死忙(finalize 是什么) 来自:<深入理解Java虚拟机> Object对象里的一个方法 对象内存的回收是由GC来做的,GG通过可达性分析来回收未被引用的对象 但是并不 ...

  3. java final 变量 回收_java入门教程-Java中final,finally,finalize三个关键字的区别

    final 当这个关键字修饰一个类时,意味着他不能派生出新的子类,也就是说不能被继承,因此一个类不能被同时声明为abstract和final.当final修饰变量或者方法时,可以保证他们在使用中不会被 ...

  4. AJPFX讲解Java 性能优化[4]:关于 finalize 函数

    ★finalize 函数的调用机制 俺经常啰嗦:"了解本质机制的重要性".所以今天也得先谈谈 finalize 函数的调用机制.在聊之前,先声明一下:Java虚拟机规范(见&quo ...

  5. 转 Java中final、finally、finalize的区别与用法

    Java中final.finally.finalize的区别与用法 1.简单区别: final用于声明属性,方法和类,分别表示属性不可交变,方法不可覆盖,类不可继承. finally是异常处理语句结构 ...

  6. Java中final、finally、finalize的简单区别,中等区别,详细区别(Lawliet 修改+注释版)

    简单区别:      中等区别:    虽然这三个单词在Java中都存在,但是并没有太多关联:  final:java中的关键字,修饰符. 1.如果一个类被声明为final,就意味着它不能再派生出新的 ...

  7. Java中final、finally、finalize的区别

    简单区别: final用于声明属性,方法和类,分别表示属性不可交变,方法不可覆盖,类不可继承. finally是异常处理语句结构的一部分,表示总是执行. finalize是Object类的一个方法,在 ...

  8. java 析构函数_C++与Java的区别(一)

    一,前言 网上经常看到编程语言之争,大伙儿皈依到不同门派,各自怀抱信仰,时不时还发生点儿"冲突". 这其中,C++和Java的优劣,十多年前就常吵的火热.然而时代在进步,技术在发展 ...

  9. java 析构函数_《JAVA编程思想》5分钟速成:第5章(初始化和清理)

    第五章.初始化和清理 前言 1.初始化顺序(静态成员.非静态成员,构造器.父类构造器)的排序: 2.构造器(constructor)是否可被重写(override)? 3.final, finally ...

最新文章

  1. iOS 获取键盘相关信息
  2. GML、SVG、VML的比较
  3. spring restful遇到的问题
  4. [导入]LINQ体验(11)——LINQ to SQL语句之Null语义和String/DateTime方法
  5. OpenGL相机控制之二
  6. 用asp.net编写冒泡排序法
  7. 使用el-checkbox实现全选,点击失效没有反应
  8. JAVA操作属性文件,可进行读 写 更改
  9. 第45届国际大学生程序设计竞赛(ICPC)沈阳站太原理工大学收获1枚铜牌
  10. wuzhicms 查看模板中的所有可用变量和值
  11. 交互设计精髓之理解输出
  12. CentOS mysql常用命令
  13. 微信小程序超级占内存_微信小程序彻底拯救16GB手机 小程序与APP占用内存对比...
  14. C语言面试题---结构体
  15. 二维卷积与一维卷积区别
  16. 从未在一起更让人遗憾_我们从未在一起更遗憾
  17. BVH with SAH (Bounding Volume Hierarchy with Surface Area Heuristic)
  18. 入门必学 | R语言参数检验之t检验与方差分析
  19. 希腊字母读音及科学方面应用
  20. windows 10 添加鼠标右键快捷应用

热门文章

  1. 【渝粤教育】国家开放大学2018年秋季 0680-22T会计基础知识 参考试题
  2. 国家开放大学2021春1378管理英语3题目
  3. TTL电平、CMOS电平、RS232通信电平的概念及区别
  4. 高低温湿热试验箱使用的注意事项
  5. java构造函数重载继承_Java基础-继承 - 写代码换盆的个人空间 - OSCHINA - 中文开源技术交流社区...
  6. 鸿蒙os怎么还没发布,关于鸿蒙OS系统!小米为何从支持到“失声”?看看中兴就知道了!...
  7. 工业机器人 答案 韩建海_中国将连续8年成为工业机器人第一大市场,还将持续多久?...
  8. Java异常处理(2)--异常处理机制及自定义异常
  9. sudo 命令报错的解决方法
  10. android 知识体系