尝试读取资源文件时InputStream为null

时间:2019-07-19 07:21:03

标签: java maven

我在/src/main/resources中有一个JSON文件,我试图通过以下方式进行读取:

private List<String> readContextFromFile(String file) {

        List<String> context = new ArrayList<>();
        try {
            InputStream in = getClass().getClassLoader().getResourceAsStream(file);
            Map<String, ArrayList> input = objectMapper.readValue(in, HashMap.class);

            context = input.get("@context");
        } catch (IOException e) {
            LOGGER.error("Error reading value {}", e.getMessage());
        }
        return context;
    }

但是,InputStream为null。

这是我传递的文件路径:/resources/context.json

我在做什么错了?

1 个答案:

答案 0 :(得分:1)

1)/src/main/resources代表源代码,而不是运行时代码。
编译的类和已处理的资源在target/classes文件夹中而不是src文件夹中结束。

2)关于:

  

这是我传递的文件路径:/resources/context.json

为什么要传递resources令牌?这是一个Maven / Gradle目录,在运行时将不会检索该目录。在运行时只能使用其中包含的内容。
您要传递的是/context.json