FileReader BufferedReader 需要close 吗
时间: 2023-12-12 17:31:52 浏览: 40
是的,FileReader和BufferedReader都需要在使用完毕后进行关闭。这是因为它们都涉及到文件的读取和操作,如果不关闭会导致资源泄漏和文件锁定等问题。在Java 7及以上版本中,可以使用try-with-resources语句来自动关闭这些资源,例如引用和引用中的代码就使用了try-with-resources语句来自动关闭BufferedReader。而在Java 6及以下版本中,需要手动调用close()方法来关闭这些资源,例如引用中的代码就需要手动调用close()方法来关闭FileReader。
相关问题
FileReader BufferedReader 调用 close 的顺序
在使用FileReader和BufferedReader时,应该先关闭BufferedReader,再关闭FileReader。因为BufferedReader是FileReader的装饰类,关闭BufferedReader时会自动关闭FileReader,但是如果先关闭FileReader,再关闭BufferedReader,就会导致BufferedReader无法正常关闭,从而可能会导致内存泄漏等问题。因此,正确的关闭顺序应该是先关闭BufferedReader,再关闭FileReader。
FileReader和BufferedReader
FileReader和BufferedReader都是Java中用于读取文件的类。
FileReader是Reader类的子类,用于读取字符流。它按字符方式读取文件,每次读取一个字符,因此效率比较低。在读取大文件时,FileReader可能会导致内存不足或程序崩溃。
BufferedReader是Reader类的包装类,它可以提高文件读取的效率。它按行读取文件,每次读取一行,因此效率比较高。在读取大文件时,推荐使用BufferedReader。BufferedReader还有一个好处就是可以使用readLine()方法来读取一行内容,方便了我们对文本文件的处理。
一般情况下,我们使用BufferedReader来读取文件,例如:
```
File file = new File("example.txt");
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
fr.close();
```
以上代码打开example.txt文件,使用BufferedReader按行读取文件内容,并输出到控制台。注意使用完之后要关闭Reader和BufferedReader。