zoukankan      html  css  js  c++  java
  • java读取properties文件的方法

    盗亦有道:

    http://blog.csdn.net/lwzcjd/article/details/3116298

    http://hi.baidu.com/hgd0324/item/1d5e923973b77c4d033edcaf

    这里介绍两种技术:利用spring读取properties 文件和利用java.util.Properties读取
    (一)利用spring读取properties 文件
    利用org.springframework.beans.factory.support.PropertiesBeanDefinitionReader来读取属性文件

    构造如下config.properties文件properties代码

    userDao.class=com.spring.dao.UserDao 

    属性文件中的"userDao"名称即是Bean的别名设定,.class用于指定类来源。
    然后利用org.springframework.beans.factory.support.PropertiesBeanDefinitionReader来读取属性文件
       BeanDefinitionRegistry reg = new DefaultListableBeanFactory();
       PropertiesBeanDefinitionReader reader = new PropertiesBeanDefinitionReader(reg);
       reader.loadBeanDefinitions(new ClassPathResource("config.properties"));
       BeanFactory factory = (BeanFactory)reg;
       UserDao userDao = (UserDao)factory.getBean("userDao");

    (二)利用java.util.Properties读取属性文件
    1.    String str=File.separator;
            InputStream path=this.getServletContext().getResourceAsStream(str+"WEB-INF"+str+"classes"+str+"password.properties");

            //InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("password.properties");

        /*File filepath=new File(this.getServletContext().getRealPath(str+"WEB-INF"+str+"classes")+str+"password.properties");

            InputStream path=new FileInputStream(filepath);*/
            Properties pros = new Properties();
            try {
                pros.load(path);
            } catch (IOException ex) {
                //System.out.println("file is not exist");
                errorMessage="资源文件不存在";
            }
            System.out.println("username:"+p.getProperty("username")+",password:"+p.getProperty("password"));

    2.    import org.springframework.core.io.ClassPathResource;

            ClassPathResource cr = new ClassPathResource("password.properties");//会重新加载spring框架
            Properties pros = new Properties();
            try {
                pros.load(cr.getInputStream());
            } catch (IOException ex) {
                //System.out.println("file is not exist");
                errorMessage="资源文件不存在";
            }

    3.使用java.util.Properties类的load()方法
    示例: InputStream in = lnew BufferedInputStream(new FileInputStream(name));
    Properties p = new Properties();
    p.load(in);

    4.使用java.util.ResourceBundle类的getBundle()方法
    示例: ResourceBundle rb = ResourceBundle.getBundle(name, Locale.getDefault());

    5.使用java.util.PropertyResourceBundle类的构造函数
    示例: InputStream in = new BufferedInputStream(new FileInputStream(name));
    ResourceBundle rb = new PropertyResourceBundle(in);

    6.使用class变量的getResourceAsStream()方法
    示例: InputStream in = JProperties.class.getResourceAsStream(name);
    Properties p = new Properties();
    p.load(in);

    7.使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法
    示例: InputStream in = JProperties.class.getClassLoader().getResourceAsStream(name);
    Properties p = new Properties();
    p.load(in);

    8.使用java.lang.ClassLoader类的getSystemResourceAsStream()静态方法
    示例: InputStream in = ClassLoader.getSystemResourceAsStream(name);
    Properties p = new Properties();
    p.load(in);

  • 相关阅读:
    iOS设计模式之简单工厂模式
    Spring Boot Admin的使用
    使用Maven创建一个Spring MVC Web 项目
    SpringMVC简单项目配置
    web框架之Spring-MVC环境搭建
    搭建Spring4+Spring MVC web工程的最佳实践
    IntelliJ IDEA和Eclipse最常用的快捷键对应表:
    Cleanup failed to process the following paths错误的解决
    idea的修改文件变颜色
    IDEA下搜狗输入法输入中文时卡着不动的参考解决方法
  • 原文地址:https://www.cnblogs.com/benjia/p/3819510.html
Copyright © 2011-2022 走看看