getResourceAsStream()是否是线程安全的?

时间:2011-06-23 11:31:44

标签: java

我需要在JSF Web应用程序中读取包含一些配置数据的属性文件。

现在代码看起来像这样

 private Properties getConfig() {
    Properties properties = new Properties();

    InputStream inputStream = null;
    try {
        inputStream = this.getClass().getResourceAsStream("/config.properties");

        try {
        properties.load(inputStream);
        } catch (IOException e) {
        logger.error("Error while reading config properties", e);
        }

    } finally {
        if (inputStream != null) {
        try {
            inputStream.close();
        } catch (IOException e) {
            logger.error(e.getMessage(), e);
        }
        }
    }

    return properties;
 }

这样做是否安全,或者在多个线程调用getConfig()时遇到并发问题?

1 个答案:

答案 0 :(得分:4)

不,那应该是非常安全的。我在那里看不到任何并发问题。

但是,异常处理可能并不理想 - 如果加载配置失败,返回空属性对象是否有效,或者是否应该从getConfig()传播异常?由你决定,真的......