java 代码里读取jar包下resources目录下的文件「建议收藏」

Java (74) 2023-04-24 08:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说java 代码里读取jar包下resources目录下的文件「建议收藏」,希望能够帮助你!!!。

简述

java项目里,我们时常需要读取一些自定义的文件,我们一般也会把这些文件放在resources目录下,但有时候,我们在idea开发时明明是可以读取到文件的,一打包放到Linux或者Tomcat上运行就会报错,说找不到指定的文件。下面我们就来实践一下常用的几个读取文件的方式。

(阅读本文大概耗时1分钟)

实践

先列举将要实践的几个方式:

  1. java.io.File
  2. java.lang.ClassLoader#getSystemResourceAsStream
  3. class.getClassLoader().getResourceAsStream
  4. org.springframework.core.io.FileSystemResource
  5. org.springframework.core.io.FileSystemResourceLoader

先实践这几种,有jdk有spring的,下面看图说话:

1、java.io.File

java 代码里读取jar包下resources目录下的文件「建议收藏」_https://bianchenghao6.com/blog_Java_第1张

java 代码里读取jar包下resources目录下的文件「建议收藏」_https://bianchenghao6.com/blog_Java_第2张

idea下都读取不到,我们就不试jar包了。(下同)

2、java.lang.ClassLoader#getSystemResourceAsStream

java 代码里读取jar包下resources目录下的文件「建议收藏」_https://bianchenghao6.com/blog_Java_第3张

java 代码里读取jar包下resources目录下的文件「建议收藏」_https://bianchenghao6.com/blog_Java_第4张

3、class.getClassLoader().getResourceAsStream

java 代码里读取jar包下resources目录下的文件「建议收藏」_https://bianchenghao6.com/blog_Java_第5张

java 代码里读取jar包下resources目录下的文件「建议收藏」_https://bianchenghao6.com/blog_Java_第6张

4、org.springframework.core.io.FileSystemResource

java 代码里读取jar包下resources目录下的文件「建议收藏」_https://bianchenghao6.com/blog_Java_第7张

java 代码里读取jar包下resources目录下的文件「建议收藏」_https://bianchenghao6.com/blog_Java_第8张

5、org.springframework.core.io.FileSystemResourceLoader

java 代码里读取jar包下resources目录下的文件「建议收藏」_https://bianchenghao6.com/blog_Java_第9张

java 代码里读取jar包下resources目录下的文件「建议收藏」_https://bianchenghao6.com/blog_Java_第10张

综上,第3,第5种方式都行;为操作方便,我建议统一使用第3种方式:

当前类名.class.getClassLoader().getResourceAsStream("text.txt")

OK,各位道友若还能想出其他方式,敬请留言。

发表回复