Java如何读取resources目录下的文件路径(九种代码示例教程)
在Java中,要读取位于resources
目录下的文件,可以使用ClassLoader
的getResource
或getResourceAsStream
方法。以下是九种不同的代码示例:
- 使用
getResource
方法获取文件的URL:
URL url = this.getClass().getClassLoader().getResource("example.txt");
- 使用
getResourceAsStream
方法读取文件内容:
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("example.txt");
- 使用
Paths
和ClassLoader
的getResource
方法结合:
Path path = Paths.get(this.getClass().getClassLoader().getResource("example.txt").toURI());
- 使用
Class
的getResource
方法:
URL url = this.getClass().getResource("/example.txt");
- 使用
Class
的getResourceAsStream
方法:
InputStream inputStream = this.getClass().getResourceAsStream("/example.txt");
- 使用
Thread
的getContextClassLoader
:
URL url = Thread.currentThread().getContextClassLoader().getResource("example.txt");
- 使用
Thread
的getContextClassLoader
和getResourceAsStream
:
InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("example.txt");
- 使用
ClassLoader
的匿名内部类:
URL url = new URL(null, "file:src/main/resources/example.txt", new URLStreamHandler() {
protected URLConnection openConnection(URL u) throws IOException {
return new FileInputStream(new File("src/main/resources/example.txt")).getConnection();
}
});
- 使用
Paths
和ClassLoader
的getResource
方法结合,并处理可能的URISyntaxException
:
Path path = null;
try {
path = Paths.get(this.getClass().getClassLoader().getResource("example.txt").toURI());
} catch (URISyntaxException e) {
e.printStackTrace();
}
以上每种方法都可以用来读取resources
目录下的文件,选择哪种方法取决于你的具体需求和上下文环境。
评论已关闭