java - 最后尝试关闭多个流

标签 java file file-io try-catch-finally

我有一个程序打开了 3 个数据流,但我不知道如何关闭它们,这里是程序的关闭部分。

finally {//cerrando muestras
        try{
            if(muestras!=null){
                muestras.close();
            }
        }catch (IOException e) {
            e.printStackTrace();
        }finally {//cerrando salida
        try{
            if(salida!=null){
                salida.close();
            }
        }catch (IOException e){
            e.printStackTrace();
        }
    }
}

我想这是因为我不能嵌套 finally 但我不知道任何其他方法,谢谢你的时间。

最佳答案

你应该使用 try-with-resource Java 7 中引入的语句,而不是自行关闭流。请考虑以下示例:

try (
    BufferedReader br = new BufferedReader(new FileReader(file));
    BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(out))
) {
    bufferedWriter.write(text);
} catch(IOException e) {
    //log or propagate to the caller
}

观察如何不必手动关闭 BufferedReaderBufferedWriter 流。

关于java - 最后尝试关闭多个流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30596939/

相关文章:

linux - 数字取证 : what can i get out from my . 原始文件?

c - 程序要求用户输入文本文件,然后用相同长度的单词替换单词

c++将给定.dat文件中的字符串 vector 转换为 double vector

c - 在 C 中复制二进制文件的神秘问题

ruby - 使用 Ruby 系统地更改目录中的文件名

每帧调用的Java函数

java - Spring Boot 命令行属性不覆盖 application.properties 中定义的属性

python - 如何有效地用 python 中的空数据填充文件?

java - 如何在 gwt 中发送邮件?

Java多线程文件下载性能