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

u3r8eeie  于 2023-02-02  发布在  Java
关注(0)|答案(2)|浏览(179)

++add我想基于json模式文件验证json。我当前将json保存为字符串,并尝试读取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.

没什么..工作..上面..请帮帮我..

guicsvcw

guicsvcw1#

默认情况下,您不能从src/main/java中的代码访问src/test/resources资源。所有src/test/resources资源仅可用于通常存储在src/test/java中并在test阶段(在Maven中)执行的测试。在该阶段,test代码可以通过您在问题中引用的一些(不是全部)方法访问该资源。
对于主类,资源根是src/main/resources,应该将JSON模式文件存储在那里,测试代码也可以访问存储在那里的资源(因此不需要复制),但反之亦然。

ttvkxqim

ttvkxqim2#

获取资源时,resources文件夹是根目录。如果文件在子文件夹中,则需要将其包含在路径中。使用

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

相关问题