在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咋撤回。