如何使用Java7 try-with-resources功能将资源传递为params

时间:2015-10-14 06:44:31

标签: java try-catch java-7 try-with-resources

我见过java7 try-with-resources。如果可关闭的资源是params,我们不需要声明资源。对于这种情况,我们如何使用这个功能?

public static void write(byte[] b, OutputStream os) throws Exception {
    try {
        os.write(b);
    }
    catch(Exception e) {
        logger.log(Level.INFO, "Exception in writing byte array");
    }
    finally {
        try {
            if(os != null) {
                os.close();
            }
        }catch(Exception e) {
            logger.log(Level.INFO, "Exception while close the outputstream");
            throw e;
        }
    }
}

2 个答案:

答案 0 :(得分:4)

您可以简单地写一下:

static void write(byte[] b, OutputStream os) throws Exception {
    try (OutputStream o = os) {
        o.write(b);
    }
}

答案 1 :(得分:0)

一旦try块完成,它就会调用方法close来关闭资源

    try (BufferedWriter bw = new BufferedWriter(new FileWriter("file.out"))) {
        bw.write("something");
    }

资源应该实现Closable接口