使用java.util.Properties快速导入配置文件

1.java.util.Properties类继承关系

Properties类表示一组持久属性。属性可以被保存到流或从流中加载。属性列表中的每一个键及其相应的值是一个字符串。

继承关系:

java.lang.Object
    java.util.Dictionary<K,V>
        java.util.Hashtable<Object,Object>
            java.util.Properties
public class Properties extends Hashtable<Object,Object>

重要的方法(从流中加载属性):

public void load(InputStream inStream) throws IOException
public void load(Reader reader)throws IOException
public void loadFromXML(InputStream in)
       throws IOException,InvalidPropertiesFormatException

load方法可以读取多种类型的字符串流,包括XML,这里只介绍简单的文本结构,以下格式均合法:

Truth = Beauty
Truth =
Truth:Beauty
Truth   :Beauty

2.创建配置文本

配置文件的格式为 key = value 形式,可以空行,value也可以为空(获取数据时值为null)。#为注释,可被忽略。

例:dataSource.properties

#数据库连接字符串
URL = jdbc:oracle:thin:@127.0.0.1:1521:myOrcl
userName = oracle
passWord = oracle

3.使用java程序读取信息

因为java.util.Properties类中load方法返回的时Map类型数据,所以只要载入配置文件,就可以直接当做Map类型数据来调用了。

例:MyTest.java

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

Class MyTest{
  public static void initDS() {
    FileInputStream inStream = null;
    try {
      inStream = new FileInputStream("dataSource.properties");
      Properties prop = new Properties();
      prop.load(inStream);
      String URL = prop.getProperty("URL");
      String userName = prop.getProperty("userName");
      String passWord = prop.getProperty("passWord");
      System.out.println(URL);
      System.out.println(userName);
      System.out.println(passWord);
    } catch (IOException ex) {
      ex.printStackTrace();
    } finally {
      if (inStream != null) {
        try {
          inStream.close();
        } catch (IOException e) {
        }
      }
    }
  }
}

4.关于汉字的读取

InputStream是通过二进制流读取数据,而InputStreamReader则通过字节读取数据,Properties提供了这两种方法:load(InputStream inStream)load(Reader reader),所以我们只要通过InputStreamReader(InputStream in,String charset)转换一下就可以保证不会出现乱码了。

String protParam = "name = 博客园";
Properties prop = new Properties();
prop.load(new InputStreamReader(new ByteArrayInputStream(protParam.getBytes()), "UTF-8"));

 

转载于:https://www.cnblogs.com/windyofsky/p/4985020.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值