工具类:properties配置文件读取工具类

2021-02-02 15:48:37 浏览数 (1)

1 properties配置文件读取工具类

代码语言:javascript复制
package com.wdy.tools.utils;
 
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;
 
/**
 *	Properties配置文件处理工具
 * @author wdy
 */
public class PropertiesUtil {
    // 静态块中不能有非静态属性,所以加static
    private static Properties prop = null;
 
    //静态块中的内容会在类别加载的时候先被执行
    static {
        try {
            prop = new Properties();
            // prop.load(new FileInputStream(new File("C:\jdbc.properties")));
            prop.load(PropertiesUtil.class.getClassLoader().getResourceAsStream("configs/jdbc.properties"));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
 
    //静态方法可以被类名直接调用
    public static String getValue(String key) {
        return prop.getProperty(key);
    }
}

2 如何使用以上的工具类

假设你的配置文件是这样的:

代码语言:javascript复制
driver = com.mysql.jdbc.Driver
url = jdbc:mysql://localhost:3306/myorcl
username = root
password = root

那么你可以这样读取你的配置信息:

代码语言:javascript复制
String driver = PropertiesUtil.getValue("driver");
System.out.println(driver);//输出结果:com.mysql.jdbc.Driver

第二种方法

代码语言:javascript复制
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/**
 * 
 */
public class ProUtil {
    /* 私有构造方法,防止被实例化 */
    private ProUtil (){};   
    public static Properties  propertie = null;
    static {
         propertie = new Properties();
        InputStream inputStream = ProUtil.class.getResourceAsStream("/config.properties");
      //解决中文乱码              BufferedReader buff  = new BufferedReader(new InputStreamReader(inputStream));
try {
            propertie.load(buff);
            inputStream.close();
        } catch (IOException e) {
        }
    }
    
    public static void main(String[] args) {
        System.out.println("--->" ProUtil.propertie.get("username"));  //username
    }
}

在其他代码里面使用以下这个就可以使用了

代码语言:javascript复制
ProUtil.propertie.get("username")

0 人点赞