首页 > 代码库 > java读取配置文件常用的四种方式

java读取配置文件常用的四种方式

配置文件 
放置在src下面 obj.properties

className=com.store.order.dao.impl.OrderDaoImpl


方式一

@Test
    public void test1() throws Exception{
        //文件放在src下面.eclipse会自动拷贝一份到bin目录下,或者build/classes下面,
        InputStream is = Class.forName("com.store.test.test").getClassLoader().getResourceAsStream("obj.properties");
        Properties properties = new Properties();
        properties.load(is);
        String className = properties.getProperty("className");
        System.out.println(className);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

方式二

    /**
     * 不推荐使用,文件位置被固定了,只能在本机使用,我们把class文件拷贝给别人就不能使用了
     * @throws Exception
     */
    @Test
    public void test2() throws Exception{
        FileInputStream fis = new FileInputStream("D:\\workspaces\\store_v1.0\\src\\obj.properties");
        Properties properties = new Properties();
        properties.load(fis);
        String className = properties.getProperty("className");
        System.out.println(className);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

方式三

    @Test
    public void test3() throws Exception{
        //读取配置文件,只能读取默认后缀名为properties(不写)
        //如果有包,写法是com.store.obj
        //细节:他只能读取类路路径下的文件,不能写入
        ResourceBundle bundle = ResourceBundle.getBundle("obj"); 
        String className = bundle.getString("className"); //通过键获取值
        System.out.println(className);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

方式四

/** 
 * Spring 提供的 PropertiesLoaderUtils 允许您直接通过基于类路径的文件地址加载属性资源 
 * 最大的好处就是:实时加载配置文件,修改后立即生效,不必重启 
 */  
private static void springUtil(){  
    Properties props = new Properties();  
    while(true){  
        try {  
            props=PropertiesLoaderUtils.loadAllProperties("message.properties");  
            for(Object key:props.keySet()){  
                System.out.print(key+":");  
                System.out.println(props.get(key));  
            }  
        } catch (IOException e) {  
            System.out.println(e.getMessage());  
        }  

        try {Thread.sleep(5000);} catch (InterruptedException e) {e.printStackTrace();}  
    }  
}  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

java读取配置文件常用的四种方式