猿问

使用 getResourceAsStream() 从 src/test/resources 获取文件

++添加我想根据 json 模式文件验证 json。我目前将 json 保存为 string ,并尝试读取 json 模式文件(即 test.json),然后进行验证。但是,读取架构文件始终为空..


下面的代码是我到目前为止尝试过的。


++原帖。


这是我目前的情况。我尝试了很多方法来获取文件(test.json)...


喜欢


InputStream in;




1.  in= valid.class.getResourceAsStream("/test.json"); 

2.  in = getClass().getClassLoader().getResourceAsStream("/test.json");

3.   in = Thread.currentThread().getContextClassLoader().getResourceAsStream("//test.json");

4. in=getClass().getResourceAsStream("/test.json"); 


5. in=ValidationUtils.class.getResourceAsStream("../resources/ds/test.json"); 


6. ClassLoader classLoader =  getClass().getClassLoader();

   in = classLoader.getResourceAsStream("test.json");

7.in=getClass().getResourceAsStream("/ds/test.json"); //tried just now



System.out.println("in"+in); //this is always null.

什么都没有......工作......上面......请帮助我......


慕的地8271018
浏览 303回答 2
2回答

元芳怎么了

您不能(默认情况下)src/test/resources从src/main/java. 所有src/test/resources资源仅可用于通常src/test/java在test阶段中存储和执行的测试(在 Maven 中)。在该阶段,测试代码可以通过您在问题中引用的某些(不是全部)方法访问该资源。对于您的主类,资源根目录为src/main/resources. 您应该将 JSON 架构文件存储在那里。测试代码还可以访问存储在那里的资源(因此不需要重复),但反之则不行。

慕娘9325324

获取资源时,资源文件夹是根目录。如果文件位于子文件夹中,则需要将其包含在路径中。用in = getClass().getResourceAsStream("/ds/test.json");
随时随地看视频慕课网APP

相关分类

Java
我要回答