1 问题描述

今天编程的时候又遇到一个错误 我进行的是Android程序实现
使用的编译工具是Eclipse LogCat的调试信息如下图
可以看到最后导致的结果就是显示 无法读取文件“No file...”
实际上我后来通过DDMS查看文件目录 文件的确是存在的 
也不存在Android项目权限的问题 因为之前已经读取了许多文件数据 
可以看到“4750 HRIR” 就是我显示的文件读取数量的提示信息
那么为什么会出现这样的问题呢

2 解决过程

因为我已经写过C++的代码 
C++代码里面有一个很重要的要点就是:需要对文件流的资源进行严格合理的管控
如果有一个文件流没有管理好 就可能会出现许多灵异的错误
这感觉令人情不自禁
所以我猜想这里也有可能出现类似的问题 因为前面我读取了很多文件信息
可以看到“4750 HRIR” 也就是已经读取了4750个文件信息
所以我想到可能是没有关闭文件流的原因 也就是没有调用close()
果然我加上了close()的代码就没有问题了 一切变得正常了
所以一定要记得关闭文件流

3 测试

加上close()语句后 一切变得正常了

4 后记

这真的是一个十分重要的教训 
原本以为由于Java优秀的垃圾回收机制 就可以随意的使用资源而不管不顾
后来发现 这样的编程思想的确是不符合实际工程的需要的
在这里 一个具体的经验就是:
需要严格合理地管控文件流资源 注意在合适的时间点对文件流进行资源的释放
也就是close() 确保资源的开销合理化 这样的观点对于Java和C++同样适用

关于Andrdoid编程中出现BufferQueue的“queueBuffer: fence is NULL”的一种解决方案相关推荐

  1. 使用Mybatis时, 在*Mapper.xml中出现大于号小于号的问题及两种解决方案

    当我们在*Mapper.xml文件中编写SQL语句的过程中, 我们的SQL语句中可能会出现使用 >, <, >=, <= 的情况. 如, 查询在当前时间之前创建的用户, 对应的 ...

  2. 关于ros中pcl_ros和ros链接问题Makefile:140的一种解决方案

    本人在ros学习pcl和slam过程中,使用catkin_make进行编译,最终只报了错误Makefile:140和make -j4 -l4错误,诸如此类错误,多为链接过程出现问题.坑多日,总结经验. ...

  3. c语言const常量用法,C++ const常量在多文件编程中的3种用法

    <C++多文件编程是什么>一节提到,多文件编程中代码的划分原则是:将变量.函数或者类的声明部分存放在 .h 文件,对应的实现部分放在 .cpp 文件中.值得一提得是,此规律适用于大部分场景 ...

  4. Attribute在.net编程中的应用

    作者:niwalker       出处:csdn SqlCommandGenerator类的设计 SqlCommandGEnerator类的设计思路就是通过反射得到方法的参数,使用被SqlComma ...

  5. c语言面向对象编程中的类_C ++中的面向对象编程

    c语言面向对象编程中的类 Object oriented programming, OOP for short, aims to implement real world entities like ...

  6. 网络编程中的关键问题总结

    网络编程中的关键问题总结 总结下网络编程中关键的细节问题,包含连接建立.连接断开.消息到达.发送消息等等: 连接建立 包括服务端接受 (accept) 新连接和客户端成功发起 (connect) 连接 ...

  7. 编程中new[]和delete[]应该如何使用?

    在平时资料中,我们常看到:new和delete,new[]和delete[]一定要配对使用!有时候不配对使用也不会出现问题.也许你也是只知其然,不知其所以然,然而我也有点懵了. 在平时资料中,我们常看 ...

  8. python的功能模块_Python的功能模块[1] - struct - struct 在网络编程中的使用

    struct模块/ struct Module 在网络编程中,利用 socket 进行通信时,常常会用到 struct 模块,在网络通信中,大多数传递的数据以二进制流(binary data)存在.传 ...

  9. c51语言的标准库函的头文件,C51编程中头文件的使用

    头文件在C51的编程中是不可缺少的部分.本文将对keil C中常用头文件予以说明,并就如何编写头文件进行初步介绍. 一.C51常见本征函数库 一些常见的头文件都是keil C自带的,在安装目录下的C5 ...

最新文章

  1. nodejs实现继承的简单代码示例
  2. solaris 10安装mysql5
  3. 为啥mysql的load这么快_mysql – 为什么’LOAD DATA INFILE’比普通的INSERT语句更快?...
  4. python装饰器class_PYTHON里的装饰器能装饰类吗
  5. Hibernate之事务处理
  6. 【报告分享】抖音品牌主页运营官方指导手册.pdf(附下载链接)
  7. GoF设计模式——工厂模式(C++实现)
  8. 基于VGG19的图片分割网络
  9. macos 卸载驱动_如何从macOS菜单栏中快速卸载外部驱动器
  10. 3dMax 整体旋转与自转
  11. 计算机wmi配置错误,系统没有WMI服务、WMI错误修复办法
  12. Android应用优化之冷启动优化
  13. 对小学语文教学的几点心得体会
  14. zabbix + nexmo = 电话告警
  15. 如何让jar包显示Java图标
  16. FFmpeg编码器参数的设置及解释
  17. C语言/C++编程学习三种循环用法和区别
  18. web 前台页面内弹出框(一)
  19. 软件无线电,虚拟无线电
  20. 三大设计模式详细总结

热门文章

  1. LeetCode_database刷题记录(620. 有趣的电影)
  2. jsp的九大内置对象和作用域
  3. 2017计算机基础教学大纲,2017级大学计算机基础教学大纲
  4. android:screenOrientation属性
  5. 咏南中间件+开发框架中秋国庆大促
  6. GitHub和Microsoft TFS对比有什么优势
  7. cocos3 动作回调函数
  8. BZOJ3437 小P的牧场
  9. mysql中的where和having子句的区别
  10. HDU2553_N皇后_位运算DFS