【问题标题】:Unable to read resource in java [duplicate]无法在java中读取资源[重复]
【发布时间】:2021-02-19 08:47:08
【问题描述】:

我的 java 程序引用了其中一个文本文件。我已将资源文件夹添加到构建路径,但仍然无法访问 我的程序中的文件。

package first;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;

public class First {

    public static void main(String[] args) {
        InputStream inputStream = 
                First.class.getResourceAsStream("message.properties");
        if (inputStream == null)
        {
            System.out.println("IO stream is null");
            return;
        }
        String result = null;
        try {
            result = inputStreamToString(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println(result);
    }
    

输出

IO Stream is null

【问题讨论】:

  • 你能仔细检查message.properties的路径吗?接下来,in the official docs, 表示如果资源不是.class 值,则不会加载该资源。您正在尝试加载属性文件,这可能存在问题。

标签: java inputstream


【解决方案1】:
First.class.getResourceAsStream("/message.properties");

例如对于标准 manve 项目,您有 resources 文件夹。当编译到jar时,它会移动到它的根目录。因此添加/ 将从jar 或目标文件夹的根目录开始搜索。

P.S.别忘了关闭InputStream

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-18
    • 2017-02-16
    • 2012-04-07
    • 1970-01-01
    • 1970-01-01
    • 2021-03-24
    • 1970-01-01
    • 2014-06-07
    相关资源
    最近更新 更多