FileReader BufferedReader 调用 close 的顺序
时间: 2023-12-12 19:31:53 浏览: 131
在使用FileReader和BufferedReader时,应该先关闭BufferedReader,再关闭FileReader。因为BufferedReader是FileReader的装饰类,关闭BufferedReader时会自动关闭FileReader,但是如果先关闭FileReader,再关闭BufferedReader,就会导致BufferedReader无法正常关闭,从而可能会导致内存泄漏等问题。因此,正确的关闭顺序应该是先关闭BufferedReader,再关闭FileReader。
相关问题
FileReader BufferedReader 需要close 吗
是的,FileReader和BufferedReader都需要在使用完毕后进行关闭。这是因为它们都涉及到文件的读取和操作,如果不关闭会导致资源泄漏和文件锁定等问题。在Java 7及以上版本中,可以使用try-with-resources语句来自动关闭这些资源,例如引用和引用中的代码就使用了try-with-resources语句来自动关闭BufferedReader。而在Java 6及以下版本中,需要手动调用close()方法来关闭这些资源,例如引用中的代码就需要手动调用close()方法来关闭FileReader。
是否需要分别调用FileReader和BufferedReader的close方法
是的,需要分别调用FileReader和BufferedReader的close方法。这是因为FileReader和BufferedReader都实现了Closeable接口,它们都使用底层资源(文件或网络连接等)并且需要在使用完毕后释放这些资源。如果不关闭这些流,可能会导致资源泄漏或文件锁定等问题。因此,正确的做法是在使用完毕后分别调用它们的close方法来释放资源。可以使用try-with-resources语句来自动关闭这些流,以确保它们被正确关闭。例如:
```
try (FileReader reader = new FileReader("file.txt");
BufferedReader br = new BufferedReader(reader)) {
// 读取文件内容
} catch (IOException e) {
e.printStackTrace();
}
```
在这个例子中,无论读取文件时是否发生异常,都会自动关闭FileReader和BufferedReader流。
阅读全文