我知道我可以从src/test/resources加载一个文件:
getClass().getResource("somefile").getFile()
但是我怎么能得到src/test/resources目录的完整路径,即我不想加载一个文件,我只想知道目录的路径?
我知道我可以从src/test/resources加载一个文件:
getClass().getResource("somefile").getFile()
但是我怎么能得到src/test/resources目录的完整路径,即我不想加载一个文件,我只想知道目录的路径?
当前回答
我将简单地使用Java 7中的Path
Path resourceDirectory = Paths.get("src","test","resources");
干净利落!
其他回答
我使用的最简单和干净的解决方案,假设测试类的名称是TestQuery1,并且在您的测试文件夹中有一个资源目录,如下所示:
├── java
│ └── TestQuery1.java
└── resources
└── TestQuery1
├── query.json
└── query.rq
要获得TestQuery1的URI,请执行以下操作:
URL currentTestResourceFolder = getClass().getResource("/"+getClass().getSimpleName());
要获取文件TestQuery1的URI,请执行以下操作:
File exampleDir = new File(currentTestResourceFolder.toURI());
URI queryJSONFileURI = exampleDir.toURI().resolve("query.json");
List<String> lines = Files.readAllLines(Paths.get("src/test/resources/foo.txt"));
lines.forEach(System.out::println);
哇,正确答案还不在这里!
MyClass.class.getResource("/somefile");
MyClass.class.getResourceAsStream("/somefile");
https://javachannel.org/posts/how-to-access-static-resources/
我将简单地使用Java 7中的Path
Path resourceDirectory = Paths.get("src","test","resources");
干净利落!
如果这是一个spring项目,我们可以使用下面的代码从src/test/resource文件夹中获取文件。
File file = ResourceUtils.getFile(this.getClass().getResource("/some_file.txt"));