java - 使用 getClassLoader() 解析 .properties 文件

标签 java inputstream properties-file

我正在编写一个 Java 程序,它接受一个 foo.properties 文件并将其解析为一个 Properties 对象。快速搜索后,我找到了这段代码:

public Properties getProperties() throws IOException{
    String fileIn = "foo.properties";
    Properties p = new Properties();
    InputStream inStream = getClass().getClassLoader().getResourceAsStream(fileIn);

    if(inStream != null) {
        p.load(inStream);
    } else throw new FileNotFoundException();

    return p;
}

我的问题涉及第 4 行:为什么上面的代码使用 InputStream inStream = getClass().getClassLoader().getResourceAsStream(fileIn),而不是简单地使用,比方说,FileinputStream fInStream = 新的 FileInputStream(fileIn)?

最佳答案

getResourceAsStream() 可以从类路径而不是绝对位置加载文件。引用this excellent article

关于java - 使用 getClassLoader() 解析 .properties 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28850031/

相关文章:

java - FileInputStream 和 ClassLoader.getSystemResourceAsStream 之间的区别

java - Gson.toJson() 返回带有空字段的默认对象?

hadoop - 是否可以在工作流 oozie 中使用两个 "job.properties"文件?

java - xml 属性文件中的多个部分

java - 如何查看Eclipse中使用的执行环境?

java - 方法 getTagValue() 在 JAVA 中未定义

java - 我无法删除文件,因为它似乎是 'open'

java - Java 和 SQL Server 中的精度噩梦

android - 如何在处理 Action 发送 Intent 的应用程序中获取通过 EXTRA_STREAM 接收的数据的大小?

java - 让 IntelliJ 知道属性文件