IT干货网

获取配置信息

itxm 2022年03月12日 编程设计 186 0

获取配置信息

先得到绝对路径,再获取流

以下代码通过绝对路径读配置文件来获取配置信息:

package com.javalearn.reflect.path; 
 
import java.io.FileReader; 
import java.util.Properties; 
 
public class TestForPath { 
    public static void main(String[] args) throws Exception{  // 文件须在src文件夹内,文件内容为className=com.javalearn.reflect.realize.User 
        String path = Thread.currentThread().getContextClassLoader().getResource("file1.properties").getPath();  // 获取绝对路径 
        FileReader reader = new FileReader(path);  // 读文件 
        Properties pro = new Properties(); 
        pro.load(reader); 
        reader.close(); 
        String className = pro.getProperty("className");  // 获取配置信息 
        System.out.println(className); 
    } 
} 
 

输出结果:

com.javalearn.reflect.realize.User 

直接以流的形式返回

以下代码对上面的代码稍作修改,通过流的形式返回文件内容:

package com.javalearn.reflect.path; 
 
import java.io.FileReader; 
import java.io.InputStream; 
import java.util.Properties; 
 
public class TestForPath { 
    public static void main(String[] args) throws Exception{  // 文件须在src文件夹内 
        InputStream reader = Thread.currentThread().getContextClassLoader().getResourceAsStream("file1.properties");  // 原来是先从文件名获得绝对路径,然后获取流,现在从文件名直接获得流 
        Properties pro = new Properties(); 
        pro.load(reader); 
        reader.close(); 
        String className = pro.getProperty("className");  // 获取配置信息 
        System.out.println(className); 
    } 
} 
 

输出结果:

com.javalearn.reflect.realize.User 

资源绑定器

以下代码使用资源绑定器来获取配置信息,无需IO流:

package com.javalearn.reflect.bundle; 
 
import java.util.ResourceBundle; 
 
public class TestForBundle { 
    public static void main(String[] args) { 
        ResourceBundle bundle = ResourceBundle.getBundle("file1");  // 文件必须在src文件中,扩展名必须为.properties,无需写扩展名 
        String className = bundle.getString("className"); 
        System.out.println(className); 
    } 
} 
 

输出结果:

com.javalearn.reflect.realize.User 
 

评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

获取文件的绝对路径