确保关闭在方法调用中打开的流的最佳方法

时间:2019-05-06 02:27:58

标签: java exception ioexception filewriter

我正在调用一种将一些数据写入Java中的CSV文件的方法。在该方法内部,我使用的是引发IOException的FileWriter。我想知道处理此异常的正确方法是,如果要在外部方法中处理该异常,同时还要确保FileWriter被关闭。

我正在考虑两种解决方案:

  1. 只需在打开FileWriter的方法中处理异常。

  2. 找出一种将FileWriter传递回调用方法以便可以关闭的方法。

这是我所谈论的例子:

public static void outerFunc() {
    // get some sort of data
    try {
        innerFunc(data);
    }
    catch (IOException e) {
        e.printStackTrace();
    }
    finally {
        // can I close the FileWriter here somehow?
    }
}

private static void innerFunc(Data data) throws IOException {
    FileWriter csv = new FileWriter("result.csv")

    // Write the data to the file

    csv.flush();
    csv.close();
}

让我知道你们的想法。我很开放我可能完全不在这里,应该以不同的方式这样做。预先感谢您的输入!

1 个答案:

答案 0 :(得分:2)

打开资源的方法应将其关闭,我将使用the try-with-resources Statement。喜欢,

try (FileWriter csv = new FileWriter("result.csv")) {
    // ...
}