猿问

请教一下关于java的close方法,麻烦大佬帮帮忙!

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

HUWWW
浏览 375回答 3
3回答

慕尼黑8549860

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

牛魔王的故事

close方法通常是用在关闭一个流,如文件流,数据库io流的等,说白了就是为了释放资源。举例:OutputStreamWriter pw = null;//定义一个流pw = new OutputStreamWriter(new FileOutputStream(“D:/test.txt”),"GBK");//确认流的输出文件和编码格式,此过程创建了“test.txt”实例pw.write("我是要写入到记事本文件的内容");//将要写入文件的内容,可以多次writepw.close();//关闭流备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。

蝴蝶刀刀

close()的作用是关闭这个流,并且释放这个流所占用的资源。你做简单应用不释放也没关系,不会对系统造成影响。但是你想想要是上万人同时用你这个系统,那么你的机器就受不了了。同时不关闭这个编程习惯不缜密,不好。
随时随地看视频慕课网APP
我要回答