java里BufferedWriter、OutputStream、OutputStreamWriter释放顺序
时间: 2023-07-04 18:07:18 浏览: 65
在Java中,对于使用`BufferedWriter`、`OutputStream`和`OutputStreamWriter`这些IO类,释放资源的顺序应该是与创建资源的顺序相反的顺序。具体来说,应该先关闭`BufferedWriter`,再关闭`OutputStreamWriter`,最后关闭`OutputStream`。
示例代码如下:
```java
BufferedWriter bw = null;
OutputStreamWriter osw = null;
OutputStream os = null;
try {
os = new FileOutputStream("file.txt");
osw = new OutputStreamWriter(os);
bw = new BufferedWriter(osw);
// 在这里使用bw进行文件写入操作
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (bw != null) {
bw.close();
}
if (osw != null) {
osw.close();
}
if (os != null) {
os.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
```
这里采用了try-catch-finally的方式,在finally块中释放资源。在释放资源时,需要注意判空,避免出现NullPointerException。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)