目前共有4篇帖子。 內容轉換:不轉換▼
 
點擊 回復
477 3
【证明】BufferedReader会自动关闭FileReader
一派護法 十九級
1樓 發表于:2016-11-14 20:01

        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");
        }
一派護法 十九級
2樓 發表于:2016-11-14 20:01

程序输出:只需关闭br,无需关闭fr
这说明,只需要执行br.close();,无需执行fr.close();
一派護法 十九級
3樓 發表于:2016-11-14 20:04

并且,官网上也有这样的例子:
new BufferedReader(new FileReader("文件名"));
这说明其中被包装的FileReader是无需手动关闭的。只需关闭最外层的BufferedReader就行了。
一派護法 十九級
4樓 發表于:2016-11-14 20:44

但是,如果FileReader是自动关闭的(例如在手动关闭Socket对象时自动关闭与其关联的InputStream),那么BufferedReader就必须手动关闭,否则会丢失数据。

回復帖子

內容:
用戶名: 您目前是匿名發表
驗證碼:
(快捷鍵:Ctrl+Enter)
 

本帖信息

點擊數:477 回複數:3
評論數: ?
作者: 巨大八爪鱼
最後回復:巨大八爪鱼
最後回復時間:2016-11-14 20:44
 
©2010-2024 Arslanbar Ver2.0
除非另有聲明,本站採用創用CC姓名標示-相同方式分享 3.0 Unported許可協議進行許可。