几种获取resources目录下的文件方式

createh56个月前 (12-30)技术教程128

前言

一般我们的配置信息默认都是会配置在/src/main/resources/application.properties(或者application.yml)文件中,当然,也可以在resources文件夹下添加自己的配置文件,甚至子目录中添加自己的配置文件,那么我们又该如何读取自己添加的配置文件中的内容呢?

准备

我们先定义一个公共的输出配置信息的方法如下:

private static void getProperties(InputStream inputStream) {
        Properties properties = new Properties();
        if (inputStream == null) {
            return;
        }
        try {
            properties.load(inputStream);
            properties.list(System.out);
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            try {
                inputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

这里是通过java.util下的Properties类来获取配置文件中的属性

添加自定义的配置文件,在resources目录下添加子目录config并添加配置文件db.properties


内容如下:

jdbc.driver=com.mysql.cj.jdbc.Driver

在java中,resources文件夹下的文件在编译后,都是为根目录(classpath)。接下来,准备采用以下的6种方式进行配置内容的读取

六种方式

  • 方法一
URL path = this.getClass().getClassLoader().getResource("config/db.properties"); // 注意路径不带/开头
getProperties(path.openStream());
  • 方法二
URL path = this.getClass().getResource("/config/db.properties"); //路径需要以/开头
getProperties(path.openStream());
  • 方法三

在springboot项目我还可以使用如下的方式:

InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("config/db.properties");//与方法一类似,只不过直接返回了InputStream类型
getProperties(inputStream);
  • 方法四

springboot项目中使用

inputStream = this.getClass().getResourceAsStream("/config/db.properties");//与方法二类似,只不过返回了InputStream类型了
getProperties(inputStream);
  • 方法五

springboot项目中使用

ClassPathResource classPathResource = new ClassPathResource("config/db.properties");
getProperties(classPathResource.getInputStream());
  • 方法六

springboot项目中使用,通过@Value注解,但是我们还需要通过@PropertySource("classpath:config/db.properties")

注解指定配置文件的路径,如果是默认的配置文件,如:application.properties(.yml)就不需要指定路径

@SpringBootApplication
@PropertySource("classpath:config/db.properties")
public class App implements CommandLineRunner{...}
 @Value("${jdbc.driver}")
 private String driver;

通过上述6种方法都可以成功获取到自定义配置文件中的配置信息,如果大家还有更好的方式,可以评论区留言。

相关文章

Java 中获取文件路径的方式,你知道几种?

1. 前言Java 开发中我们经常要获取文件的路径,比如读取配置文件等等。今天我们就关于文件的路径和如何读取文件简单地探讨一下。2. 文件的路径文件的路径通常有 相对路径 与 绝对路径。2.1 相对路...

java获取文件路径最好的方式(java 获取文件地址)

在开发中,我们经常要去获取文件的路径,那么什么样的方式才是最好的呢? 那就是移植性,不能换了一个软件,或者换了一个系统就需要修改获取文件路径的源码,所以今天我们就来看下这种获取文件路径的方式:注意:这...

java从jar包中读取资源文件(读取jar包内文件)

由于特别情况,我们通常需要读取jar中的资源;本文只要记录读取资源并通过jar方式运行和在开发IDE中运行的一致性。常规使用#常规使用 - 绝对路径常规使用 - 项目的相对路径取的是当前项目的根目录下...

JAVA中的文件操作3-如何查找文件(java查找文件夹)

JAVA中的文件操作3-如何查找文件在前面的JAVA中的文件操作1-如何获取文件信息,创建文件和JAVA中的文件操作2-如何读写文件中,我们介绍了文件的基本操作。那么,我们有时候还可能会遇到从文件夹中...

新手小白学Java|零基础入门笔记|原来学Java可以这么简单

刚开始学习java的时候,可能是一头雾水,不知道从何学起。还有很多Java小白,在刚自学Java的时候玩命的学习,玩命的记住Java原理,天天早上五点起床背Java的一些英文词汇,然后遇见一些未知的困...