Java 读取 .properties 配置文件的几种方式
没啥说的,直接上代码。
package com.iflytek.jtcn.service.impl; import org.elasticsearch.client.Client; import java.io.BufferedReader; import java.io.FileReader; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Properties; import java.util.ResourceBundle; public class PropertiesTest { public static void readProp1() throws Exception { Properties prop = new Properties(); prop.load(new InputStreamReader(Client.class.getClassLoader().getResourceAsStream("application.properties"), "UTF-8")); String linuxIp = (String) prop.get("linux.ip"); System.out.println("linuxIp:" + linuxIp); } /** * 基于ClassLoder读取配置文件 * 注意:该方式只能读取类路径下的配置文件,有局限但是如果配置文件在类路径下比较方便。 */ public static void readProp2() throws Exception { Properties properties = new Properties(); // 使用ClassLoader加载properties配置文件生成对应的输入流 InputStream in = PropertiesTest.class.getClassLoader().getResourceAsStream("application.properties"); // 使用properties对象加载输入流 properties.load(in); //获取key对应的value值 String linuxIp = properties.getProperty("linux.ip"); System.out.println("linuxIp:" + linuxIp); } /** * 基于 InputStream 读取配置文件 * 绝对路径 * 注意:该方式的优点在于可以读取任意路径下的配置文件 */ public static void readProp3() throws Exception { Properties properties = new Properties(); // 使用InPutStream流读取properties文件 //使用绝对路径 BufferedReader bufferedReader = new BufferedReader(new FileReader("src/main/resources/application.properties")); properties.load(bufferedReader); // 获取key对应的value值 String linuxIp = properties.getProperty("linux.ip"); System.out.println("linuxIp:" + linuxIp); } /** * 通过 java.util.ResourceBundle 类来读取,这种方式比使用 Properties 要方便一些 * * 通过 ResourceBundle.getBundle() 静态方法来获取(ResourceBundle是一个抽象类), * 这种方式来获取properties属性文件不需要加.properties后缀名,只需要文件名即可 * * */ public static void readProp4() { //application为属性文件名,如果是放在src下,直接用application即可,放在其他包路径下需要用绝对路径 ResourceBundle resource = ResourceBundle.getBundle("application"); String linuxIp = resource.getString("linux.ip"); System.out.println("linuxIp:" + linuxIp); } public static void main(String[] args) throws Exception { //readProp1(); //readProp2(); //readProp3(); readProp4(); } }
原创不易,如果感觉不错,希望给个推荐!您的支持是我写作的最大动力!