Java基础之读取properties配置文件

阳光穿透心脏的1/2处 2023-07-22 15:25 129阅读 0赞

一.Properties 类基本定义:
Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。

一个属性列表可包含另一个属性列表作为它的“默认值”;如果未能在原有的属性列表中搜索到属性键,则搜索第二个属性列表。

因为 Properties 继承于 Hashtable,所以可对 Properties 对象应用 put 和 putAll 方法。但不建议使用这两个方法,因为它们允许调用者插入其键或值不是 String 的项。相反,应该使用 setProperty 方法。如果在“不安全”的 Properties 对象(即包含非 String 的键或值)上调用 store 或 save 方法,则该调用将失败。类似地,如果在“不安全”的 Properties 对象(即包含非 String 的键)上调用 propertyNames 或 list 方法,则该调用将失败。

二.常用方法:
①getProperty(String key)
用指定的键在此属性列表中搜索属性。
②load(InputStream inStream)
从输入流中读取属性列表(键和元素对)。
③propertyNames()
返回属性列表中所有键的枚举,如果在主属性列表中未找到同名的键,则包括默认属性列表中不同的键。
④setProperty(String key, String value)
调用 Hashtable 的方法 put。

三.java读取properties配置文件的几种方式

  1. public class PropertiesDemo {
  2. public static void main(String[] args) throws IOException {
  3. loadProperties1();
  4. readProperty2();
  5. readProperty3();
  6. }
  7. //方式一:基于InputStream读取配置文件:
  8. private static void loadProperties1() throws IOException {
  9. Properties properties = new Properties();
  10. // FileInputStream stream = new FileInputStream("db.properties");
  11. InputStream stream = PropertiesDemo.class.getClassLoader().getResourceAsStream("db.properties");
  12. properties.load(stream);
  13. System.out.println(properties.getProperty("username"));
  14. System.out.println(properties.getProperty("password"));
  15. }
  16. //方法二通过Spring中的PropertiesLoaderUtils工具类进行获取:
  17. private static void readProperty2() {
  18. Properties properties = new Properties();
  19. try {
  20. properties = PropertiesLoaderUtils.loadAllProperties("db.properties");
  21. System.out.println(new String(properties.getProperty("username").getBytes("iso-8859-1"), "gbk"));
  22. } catch (IOException e) {
  23. e.printStackTrace();
  24. }
  25. }
  26. //方法三通过 java.util.ResourceBundle 类读取:
  27. private static void readProperty3() {
  28. ResourceBundle resourceBundle = ResourceBundle.getBundle("db");
  29. //遍历取值
  30. Enumeration enumeration = resourceBundle.getKeys();
  31. while (enumeration.hasMoreElements()) {
  32. try {
  33. String value = resourceBundle.getString((String) enumeration.nextElement());
  34. System.out.println(new String(value.getBytes("iso-8859-1"), "gbk"));
  35. } catch (UnsupportedEncodingException e) {
  36. e.printStackTrace();
  37. }
  38. }
  39. }
  40. }

发表评论

表情:
评论列表 (有 0 条评论,129人围观)

还没有评论,来说两句吧...

相关阅读

    相关 读取Properties配置文件

    通过读取properties文件获取配置项的值在开发中是很常用的,这种方式降低了变量和代码间的耦合,使得非开发人员也可以很容易的对系统的一些配置进行修改,比如配置数据库连接参数

    相关 java读取properties配置文件

    今天要将以前一个项目的数据连接改成从properties文件中配置。找了好久,网上也不少,可就是读取文件时总是找不到文件在哪(我放在 classes目录下了)。最后终于成功,记