|
【证明】BufferedReader会自动关闭FileReader |
一派掌門 二十級 |
try { FileReader fr = new FileReader("F:/My Data/2016/November/distance.txt"); BufferedReader br = new BufferedReader(fr); br.close(); char[] str = new char[20]; fr.read(str); System.out.println(str); } catch (IOException e) { System.out.println("只需关闭br,无需关闭fr"); }
|
一派掌門 二十級 |
程序输出:只需关闭br,无需关闭fr 这说明,只需要执行br.close();,无需执行fr.close();
|
|
一派掌門 二十級 |
并且,官网上也有这样的例子: new BufferedReader(new FileReader("文件名")); 这说明其中被包装的FileReader是无需手动关闭的。只需关闭最外层的BufferedReader就行了。
|
|
一派掌門 二十級 |
但是,如果FileReader是自动关闭的(例如在手动关闭Socket对象时自动关闭与其关联的InputStream),那么BufferedReader就必须手动关闭,否则会丢失数据。
|
|
大魔法師 十一級 |
5樓
發表于: 2026-3-1 22:52
现在可以try with resource来着
|
|