gpt4 book ai didi

java - getResourceAsStream 返回 NullpointerException

转载 作者:行者123 更新时间:2023-12-02 03:45:37 27 4
gpt4 key购买 nike

在 Spring 中,我想让图像显示在我的浏览器上。该图像位于我的主项目中,即

> myproject
- src
- target
- img.png

这意味着 img.png 位于根目录中,因此我不提供任何路径,但它返回 NullPointerException 。我尝试在 src 中添加图像,并将路径更改为 src\img.png但还是给了NPE。

请注意,该项目使用 Maven。

堆栈跟踪:

java.lang.NullPointerException: null
at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1792) ~[commons-io-2.4.jar:2.4]
at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1769) ~[commons-io-2.4.jar:2.4]
at org.apache.commons.io.IOUtils.copy(IOUtils.java:1744) ~[commons-io-2.4.jar:2.4]
at org.apache.commons.io.IOUtils.toByteArray(IOUtils.java:462) ~[commons-io-2.4.jar:2.4]

这是我使用的代码:

InputStream in = DataService.class.getResourceAsStream("img.png");

final HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.IMAGE_PNG);

result.setData(new ResponseEntity<byte[]>(IOUtils.toByteArray(in), headers, HttpStatus.CREATED));

对此问题的评论被标记为关闭:

ReturnsA URL object or null if no resource with this name is found

我的代码返回null即使我尝试添加 img.png到不同的地点。

该问题的答案表明该文件必须与 this 位于同一目录中但在这个问题中,即使我将图像添加到类 DataService 所在的同一位置是的,它不起作用。

最佳答案

这里的问题是 /src 可能是类路径的根目录(这取决于您如何编译项目),因此您应该将 img.png 放入 src 文件夹和以下代码可以工作

DataService.class.getResourceAsStream("img.png");

通常 getResourceAsStream() 从类路径的根目录查找文件。

关于java - getResourceAsStream 返回 NullpointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36338743/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com