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);

  • 相关阅读:
    【openCV学习笔记】【2】读取并播放一段视频
    Net WebApi中使用Swagger
    .pfx格式和.Cer格式的区别
    数字证书原理
    ASP.NET发送电子邮件
    WindowsAzure上把WebApp和WebService同时部署在一个WebRole中
    JS原型与原型链终极详解
    三、ASP.NET MVC Controller 控制器(二:IController控制器的创建过程)
    二、ASP.NET MVC Controller 控制器(一:深入解析控制器运行原理)
    一、ASP.NET Routing路由(深入解析路由系统架构原理)
  • 原文地址:https://www.cnblogs.com/benjia/p/3819510.html
Copyright © 2011-2022 走看看