java什么时候该写.close()释放资源?

Python013

java什么时候该写.close()释放资源?,第1张

在Java中对资源的读写最后要进行close操作,以下是2种释放资源处理方式:

第1种:把close()放在try中。

try {

PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(

"out.txt", true)))

pw.println("This is a test.")

pw.close()

} catch (IOException e) {

e.printStackTrace()

第3种:使用try-with-resource语句。

try (PrintWriter pw = new PrintWriter(

new BufferedWriter(

new FileWriter("out.txt", true)))) {

pw.println("This is a test.")

} catch (IOException e) {

e.printStackTrace()

无论是否有异常发生close()方法都应该被调用,因此close()应放在finally中。而从Java 7开始,可以使用try-with-resource语句。

书上说的是InputStream和OutputStream这两个类的close()方法什么也不做。

这么做是为了让开发者自己去继承这两个类,并覆盖close()方法。如果不覆盖,则默认什么也不做。这使得程序员可以在close方法中做自己需要的操作。比如删除临时文件之类的。。。

JAVA中,所有的输入流都是InputStream的子类的对象,所有的输出流都是OutputStream的子类的对象。因为InputStream和OutputStream都是抽象类,它们不可能被实例化。

JDK中有一些常用的类已经继承了这两个类。比如FileInputStream和FileOutputStream,这两个子类的close()方法都有执行操作的。

顺便说一句,麦兄,你什么时候出来教训一下罗伊阿,你看他昨天在火箭面前多么嚣张!

1、获取java所在的节点

2、获取java所在节点的流出方向

3、记录java所在节点的流出方向,并将java所在节点的流出方向清空。

4、获取java目标节点。

5、创建新的方向。

6、将新的方向set到所在节点的流出方向。

7、完成当前任务。

8、还原所在节点的流出方向,即可在java中close咋撤回。