java的close方法

每次关闭输入流或者关闭输出流的时候,为什么例子在close()方法后面的注释总是说 close方法本身什么也不做啊??无法理解到~~~

书上说的是InputStream和OutputStream这两个类的close()方法什么也不做。
这么做是为了让开发者自己去继承这两个类,并覆盖close()方法。如果不覆盖,则默认什么也不做。这使得程序员可以在close方法中做自己需要的操作。比如删除临时文件之类的。。。
JAVA中,所有的输入流都是InputStream的子类的对象,所有的输出流都是OutputStream的子类的对象。因为InputStream和OutputStream都是抽象类,它们不可能被实例化。
JDK中有一些常用的类已经继承了这两个类。比如FileInputStream和FileOutputStream,这两个子类的close()方法都有执行操作的。

顺便说一句,麦兄,你什么时候出来教训一下罗伊阿,你看他昨天在火箭面前多么嚣张!
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-16
close方法通常是用在关闭一个流,如文件流,数据库io流的等,说白了就是为了释放资源。举例:
OutputStreamWriter pw = null;//定义一个流
pw = new OutputStreamWriter(new FileOutputStream(“D:/test.txt”),"GBK");//确认流的输出文件和编码格式,此过程创建了“test.txt”实例
pw.write("我是要写入到记事本文件的内容");//将要写入文件的内容,可以多次write
pw.close();//关闭流
备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。
第2个回答  2009-12-07
close()的作用是关闭这个流,并且释放这个流所占用的资源。
你做简单应用不释放也没关系,不会对系统造成影响。但是你想想要是上万人同时用你这个系统,那么你的机器就受不了了。
同时不关闭这个编程习惯不缜密,不好。
第3个回答  2009-12-07
楼主还是最好给个例子,对症下药吗!“close方法本身什么也不做啊”可能的解释就是使用了对象池,close只是简单的把资源返回到池中。
第4个回答  2009-12-07
哪个类的close()?说清楚
比如说
java.lang.Object
java.io.InputStream
java.io.FilterInputStream
java.io.BufferedInputStream
的void close() 的说明就是
"关闭此输入流并释放与该流关联的所有系统资源。 "
一般不会有方法会写"方法本身什么也不做"
相似回答