无法读取Java中的资源

问题描述

我的 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

解决方法

First.class.getResourceAsStream("/message.properties");

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

P.S. 不要忘记关闭 InputStream