Java工程中读取resources目录下properties文件的几种方法

在实际开发过程中经常遇到需要读取工程目录下resources文件夹下配置文件的情况。本文主要介绍几种读取该目录下配置文件的方法,以便于在实际项目中可以灵活选用。本文主要介绍相对路径下的目录中配置文件的读取方法。现存在如下这样的工程目录:

这里写图片描述

二、具体读取方法

1、当需要读取当前路径下的properties文件时,即在本地没有部署到具体服务器上的情况:

File file = new File(“src/main/resources/test.properties”);

InputStream in = new FileInputStream(file);

2、当工程以war或者jar的形式部署到服务器后,在需要读取对应properties文件情况下,此时应该采取相对路径的读取方法。以下为采用流的方式进行读取。

这里写图片描述

从上图可知,当工程部署在服务器下时,配置文件以及代码都是在对应的classes文件夹下

InputStream in = this.getClass().getResourceAsStream(“/test.properties”);

Properties props = new Properties();

InputStreamReader inputStreamReader = new InputStreamReader(in, “UTF-8”);

props.load(inputStreamReader);

采用此种流的方式进行读取后,通过props.getProperty(key)的方式获取配置文件中key所对应的value的值。

3、我们也可以采用注解的方式进行配置文件读取,在springboot工程中不需要在spring配置文件中做相应的配置,可以直接使用该注解获取配置文件中key值对应的value值。

@Value(“${local.server.port}”)// 注入端口号

private int port;

注意:当value出现中文时,会出现注入的值为乱码的现象。原因是在SpringBoot自动加载application.properties时默认采用unicode编码方式。解决办法如下所示:

@RestController

@RequestMapping(value = “/redis”)

@PropertySource(value = {“classpath:application.properties”},encoding=“utf-8”)

public class UserController extends BaseController{

@Autowired

IUserService userService;

@Autowired

IRedisService redisService;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值