为啥在java中打开流后一定要关闭流??好像关不关没有不同,程序的结果都是一样的。。。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥在java中打开流后一定要关闭流??好像关不关没有不同,程序的结果都是一样的。。。相关的知识,希望对你有一定的参考价值。
这跟资源的占用有关比如你将一个100MB的word文档转换成流,然后进行分析存储到数据库一样
它是将这100MB的东西读到内存,然后进行处理,如果你在使用的时候不关闭
那么java就认为你是一直在使用
而不进行垃圾回收
那么就占你100MB的内存
这样有可能导致内存溢出 参考技术A 比如你写一个程序,然后你不关闭连接,那么他就会占据一个资源,久而久之你写的程序跑起来就慢了。而这个连接数是有限的,当达到一个上限以后,java的IO就没法使用了。所以编程要养成良好的习惯。在处理完之后加一个close()方法 参考技术B 举个简单例子,你打开写入文件等,如果你用流打开了文件,写入文件后,你没有关闭文件,在程序执行完后,你想删除文件不删不掉的。。 参考技术C 流不关资源占着内存,你一个小的程序感觉不出来,要是好多流都不关,就会导致死机,内存泄流!建议培养良好的编码意识,一个小的程序也要吧流关了 参考技术D 你每次都不关闭的话会无限的增加内存负担~到一定程度 系统不就因内存不足而崩溃了么~
java;怎么关闭流文件?
BufferedReader br = new
BufferedReader(new InputStreamReader(new FileInputStream(filePath_In)));
用 while ((line = br.readLine())!= null)读取文件时,中途想关闭这个文件,从头开始读取怎么操作?
close好像不行啊Exception in thread "main" java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:292)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at OpenWeb.main(OpenWeb.java:49)
public static void main(String[] args) throws IOException
.......
br.close()本回答被提问者采纳 参考技术C 中途关闭??
那你就在你能确定到中途的地方加上br.Close();外面加上try--catch 语句块来捕捉异常~
路过!~
以上是关于为啥在java中打开流后一定要关闭流??好像关不关没有不同,程序的结果都是一样的。。。的主要内容,如果未能解决你的问题,请参考以下文章