黑马程序员技术交流社区

标题: 关于io流的关闭问题 [打印本页]

作者: 郭军亮    时间: 2013-5-1 23:09
标题: 关于io流的关闭问题
本帖最后由 郭军亮 于 2013-5-2 20:55 编辑

InputStream in=new FileInputStream("aa.txt");
读取完以后,如果不进行in.close();操作,会造成什么情况?是否会造成内存泄露呢?
作者: Jacky_Chen1990    时间: 2013-5-1 23:15
1.不关闭文件会浪费系统资源,与数据库连接资源类似。程序每执行一段代码都占用一部分内存,如果不关闭的话肯定会浪费内存的,而且如果有动态分配的内存,那还会造成内存泄露。

2.每个系统打开文件数量是有一限制的,如果打开文件不关闭,当连接数满的时候就无法再打开文件了。一般一个操作系统能最多打开1024个文件,但这个不一定,与机器硬件配置和系统配置有关。老点的机器只能同时打开256个或更低。

3.IO流也有独占模式,也就是锁的概念,打开一个文件流以后,如果是以读的模式打开那就是共享锁,其它程序也可访问读取;如果以写的模式打开一般为独占,其它程序不能访问.具体表现情况还要看操作系统或者应用程序是如何处理的,因为底层的程序和高层的程序不一样。
作者: pthuakai    时间: 2013-5-2 08:21
这样会浪费资源。在开发中,这种浪费是不允许的。尤其是计算机刚开始的时候,内存是很贵的。所以对内存的使用非常的节省。虽然现在内存不贵了,但是,开发的时候还是要按照这个规则的。学数据结构,就是为了节省内存来的。这样可以优化性能。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2