q***s 发帖数: 2243 | 1 比如下面的代码,操作完成之后,是只关闭 FileWriter,还是只关闭 BufferedWriter
,还是两个都要关闭,如果两个都关闭,那么谁先关,谁后关?
FileWriter fw = new FileWriter("c:/tmp/test.txt");
BufferedWriter bw = new BufferedWriter(fw);
// some operations
bw.close();
fw.close();
多谢! |
g**e 发帖数: 6127 | 2 我的理解是bw关了fw就自动关了
请各位师傅指教
BufferedWriter
【在 q***s 的大作中提到】 : 比如下面的代码,操作完成之后,是只关闭 FileWriter,还是只关闭 BufferedWriter : ,还是两个都要关闭,如果两个都关闭,那么谁先关,谁后关? : FileWriter fw = new FileWriter("c:/tmp/test.txt"); : BufferedWriter bw = new BufferedWriter(fw); : : // some operations : : bw.close(); : fw.close(); : 多谢!
|
r***y 发帖数: 4379 | 3 this is correct.
when bw's constructor executed, "fw" is referred by an instance variable of
"bw", say "out".
when invoking bw.close(), fw.close() will be executed by invoking out.close(
) finally.
【在 g**e 的大作中提到】 : 我的理解是bw关了fw就自动关了 : 请各位师傅指教 : : BufferedWriter
|
q***s 发帖数: 2243 | |
g*****g 发帖数: 34805 | 5 It makes no difference, you can just close one.
The main thing is to put it in finally block and use a check, like
finally{
if(bw != null) bw.close();
}
BufferedWriter
【在 q***s 的大作中提到】 : 比如下面的代码,操作完成之后,是只关闭 FileWriter,还是只关闭 BufferedWriter : ,还是两个都要关闭,如果两个都关闭,那么谁先关,谁后关? : FileWriter fw = new FileWriter("c:/tmp/test.txt"); : BufferedWriter bw = new BufferedWriter(fw); : : // some operations : : bw.close(); : fw.close(); : 多谢!
|