java tomcat 读取配置文件端口_跟我学Java编程—应用读写项目配置文件的Properties类...

本文介绍了Java中Properties类的使用,包括构造函数、属性存取、配置文件的读取和保存方法,强调了在项目开发中配置文件的重要性,以及避免中文注释可能导致的乱码问题。
摘要由CSDN通过智能技术生成

我们在开发软件项目时,经常需要读取项目的一些配置数据。例如,项目里用到的数据库链接地址、Tomcat服务端口号、数据文件备份地址等信息都需要放到一个配置文件里,由程序读取并获取。这样做的好处是,当需要改变数据库连接地址、Tomcat服务端口号、数据文件备份地址等信息时,不需要修改代码,只需要修改配置文件内容就可以了。

Map接口还有一个重要的实现类Properties类,主要用于读取Java的配置文件,配置文件中很多变量是经常改变的,用于满足不同的项目部署环境要求。

1、Properties类 的构造函数

Properties 提供了二个常用的构造函数,说明如下:

● Properties ()

使用该构造函数,创建一个空的属性列表,没有默认值。

● Properties (Properties defaults)

使用该构造函数,创建一个空的属性列表,具有指定的默认值。

2、Properties类 的属性存取

同其它Map接口实现类一样,Properties类也提供了get和put方法用于元素的存取。但不建议使用这两个方法,因为这两个方法允许调用者插入其键或值不是 String 的数据,应该使用 setProperty和getProperty方法。

● Object setProperty (String key, String value)

该方法用于在属性列表中添加一个属性项,如果key指定的属性项已存在,则修改该属性项。

● String getProperty (String key)

该方法用于获取指定key的属性值。

Properties类属性存取示例代码如下:

abd3c428dc26c26cee9d59b07e8d4361.png

程序实例化对象Properties,并调用setProperty方法添加了ip、port、name、psw四个属性项。然后,调用getProperty方法获取属性值。程序输出结果如下图所示:

Properties类主要用于配置文件的读取和修改,需要将属性写入到配置文件中,或者从配置文件读取属性。Properties类也提供了配置文件的存取方法。

1、Properties类 的配置文件的读取

● void load(Reader reader) throws IOException

该方法用于从输入字符流中读取属性列表,因为该方法会抛出IO异常,因此在调用此方法时,应使用try-catch语句捕获IO异常。

● void save(Writer writer, String comments) throws IOException

该方法将当前属性列表写入到输出字符流中,因为该方法会抛出IO异常,因此在调用此方法时,应使用try-catch语句捕获IO异常。

Properties类配置文件存储示例代码如下:

f162feabcaae7ba704b9c2ba0b5446c8.png

程序代码与上例程序的代码基本相同,不同的是添加了保存属性列表到database.xml的语句。写入的database.xml文件内容如下图所示:

fbf23cb39b35f7f7d818b7479d7e6bad.pngdatabase.xml配置文件内容

从上图看出,例子代码创建的属性项都已写入配置文件。唯一的问题是第一行显示了乱码,乱码内容是在调用store方法存储配置文件时传入的注释内容“数据库配置属性”,建议在写配置文件时尽量不要使用中文内容。

Properties类配置文件读取示例代码如下:

eb73e196e036ec3720a5c02b663111ad.png

程序调用load方法读取上例中创建的配置文件,然后调用propertyNames方法获取属性项枚举集合,最后遍历枚举集合输出属性项。程序输出结果如下图所示:

5fab811ae3e15319cf71f49015986406.pngReadPropertiesDemo输出结果

从上图可以看出,程序正确输出了所读配置文件的属性项。

■ 知识点拨

Properties类表示了一个持久的属性集,它可保存在流中或从流中加载,属性列表中每个键及其对应值都是一个字符串。Properties类一般用于项目配置文件的存取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值