黑马程序员技术交流社区
标题:
流关闭的顺序问题?
[打印本页]
作者:
宗士为
时间:
2012-5-12 14:46
标题:
流关闭的顺序问题?
public class Exercise1 {
public static void main(String[] args) throws IOException {
LineNumberReader lnr = new LineNumberReader(new FileReader("day19-笔记.txt"));
List<String> list = new ArrayList<String>();
String b;
while ((b = lnr.readLine()) != null)
list.add(lnr.getLineNumber() + ":" + b);
lnr.close();
BufferedWriter bw = new BufferedWriter(new FileWriter("exercise1day19.txt"));
for(String s : list) {
bw.write(s);
bw.newLine();
}
bw.close();
}
}
红色部分是关闭流
那我能不能一起关闭呢
以下:
BufferedWriter bw = new BufferedWriter(new FileWriter("exercise1day19.txt"));
for(String s : list) {
bw.write(s);
bw.newLine();
}
lnr.close();
bw.close();
}
那么怎么确定什么时候该关流呢?
作者:
孙宇晨
时间:
2012-5-12 14:50
你说的放在一起关闭如果是指代码的位置的话 是可以的. 就在循环写入目的文件 的循环结束后关闭,
作者:
杨威
时间:
2012-5-12 15:11
原则上是可以的,
但是你知道在代码的书写时,如果我们定义的流对象已经做完了我们使用它的目的(读取流完成了读取操作,输入流完成了输入操作),那就应该将其关了,这是代码书写的惯例,如果放在一起关可能会忘记关某一个,因为有时要关闭的不仅仅是那两个,再者放在一起关也降低了代码的可读性。
作者:
崔陈喜
时间:
2012-5-12 22:22
可以,但不建议这样做,我们应该养成良好的书写习惯,以免忘记书写。
此程序如果忘了写最后一个流的关闭,其仍将暂用内存。消耗资源?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2