Java学习系列:getResourceAsStream或getResource的使用
场景
程序中,需要获取配置文件或者资源文件,可以使用getResourceAsStream或getResource来获取资源。本篇博文主要是讲述该用法的使用。
环境
软件 | 版本 |
---|---|
Java | 8 |
正文
show the code!!!
public class TestGetResource {
public static void main(String[] args) {
TestGetResource testGetResource = new TestGetResource();
testGetResource.testResource();
testGetResource.testTest1_2();
testGetResource.testTest1();
}
private void testResource() {
System.out.println("从classpath路径下找该文件");
InputStream resource = this.getClass().getClassLoader().getResourceAsStream("test.properties");
String resourceLine = IoUtil.read(resource, Charset.forName("UTF-8"));
System.out.println("读取this.getClass().getClassLoader().getResourceAsStream(\"test.properties\")的值为:"+resourceLine);
}
private void testTest1() {
System.out.println("从当前路径下找该文件");
InputStream resource = this.getClass().getResourceAsStream("test.properties");
String resourceLine = IoUtil.read(resource, Charset.forName("UTF-8"));
System.out.println("读取this.getClass().getResourceAsStream(\"test.properties\")的值为:"+resourceLine);
}
private void testTest1_2() {
System.out.println("加入/,则从classpath路径下找该文件");
InputStream resource = this.getClass().getResourceAsStream("/test.properties");
String resourceLine = IoUtil.read(resource, Charset.forName("UTF-8"));
System.out.println("读取this.getClass().getResourceAsStream(\"/test.properties\")的值为:"+resourceLine);
}
}
结果如下:
从classpath路径下找该文件
读取this.getClass().getClassLoader().getResourceAsStream("test.properties")的值为:index=resource
加入/,则从classpath路径下找该文件
读取this.getClass().getResourceAsStream("/test.properties")的值为:index=resource
从当前路径下找该文件
读取this.getClass().getResourceAsStream("test.properties")的值为:index=test1
扩展
this.getClass().getResourceAsStream 返回 null
- 检查文件名及文件路径是否正常;
- 检查是否有生成到对应的classes路径。如果文件是放在源码目录下,编译打包可能不会将非java文件复制过去。需要专门设置!!!
总结
多思多想!!!
随缘求赞
如果我的文章对大家产生了帮忙,可以在文章底部点个赞或者收藏;
如果有好的讨论,可以留言;
如果想继续查看我以后的文章,可以点击关注
可以扫描以下二维码,关注我的公众号:枫夜之求索阁,查看我最新的分享!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?