zoukankan      html  css  js  c++  java
  • 【转载】java加载properties文件的六种方法总结

    java加载properties文件的六中基本方式实现

    java加载properties文件的方式主要分为两大类:一种是通过import java.util.Properties类中的load(InputStream in)方法加载;

    另一种是通过import java.util.ResourceBundle类的getBundle(String baseName)方法加载。

    注意:一定要区分路径格式

    实现代码如下:

    package com.util;
     
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Properties;
    import java.util.PropertyResourceBundle;
    import java.util.ResourceBundle;
     
    public class PropertiesUtil {
      private static String basePath = "src/prop.properties";
      private static String name = "";
      private static String nickname = "";
      private static String password = "";
     
      /**
       * 一、 使用java.util.Properties类的load(InputStream in)方法加载properties文件
       * 
       */
      public static String getName1() {
        try {
          Properties prop = new Properties();
          InputStream is = new FileInputStream(basePath);
          prop.load(is);
          name = prop.getProperty("username");
        } catch (FileNotFoundException e) {
          e.printStackTrace();
        } catch (IOException e) {
          e.printStackTrace();
        }
        return name;
      }
     
      /**
       * 二、 使用class变量的getResourceAsStream()方法
       * 注意:getResourceAsStream()读取路径是与本类的同一包下
       * 
       */
      public static String getName2() {
        Properties prop = new Properties();
        InputStream is = PropertiesUtil.class
            .getResourceAsStream("/com/util/prop.properties");
        try {
          prop.load(is);
          name = prop.getProperty("username");
        } catch (IOException e) {
          e.printStackTrace();
        }
        return name;
      }
     
      /**
       * 三、
       * 使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法
       * getResourceAsStream(name)方法的参数必须是包路径+文件名+.后缀 否则会报空指针异常
       * 
       */
      public static String getName3() {
        Properties prop = new Properties();
        InputStream is = PropertiesUtil.class.getClassLoader()
            .getResourceAsStream("com/util/prop.properties");
        try {
          prop.load(is);
     
        } catch (IOException e) {
          e.printStackTrace();
        }
        return name;
      }
     
      /**
       * 四、 使用java.lang.ClassLoader类的getSystemResourceAsStream()静态方法
       * getSystemResourceAsStream()方法的参数格式也是有固定要求的
       * 
       */
      public static String getName4() {
        Properties prop = new Properties();
        InputStream is = ClassLoader
            .getSystemResourceAsStream("com/util/prop.properties");
        try {
          prop.load(is);
          name = prop.getProperty("username");
        } catch (IOException e) {
          e.printStackTrace();
        }
        return name;
      }
     
      /**
       * 五、 使用java.util.ResourceBundle类的getBundle()方法
       * 注意:这个getBundle()方法的参数只能写成包路径+properties文件名,否则将抛异常
       * 
       */
      public static String getName5() {
        ResourceBundle rb = ResourceBundle.getBundle("com/util/prop");
        password = rb.getString("password");
        return password;
      }
     
      /**
       * 六、 使用java.util.PropertyResourceBundle类的构造函数
       * 
       */
      public static String getName6() {
        try {
          InputStream is = new FileInputStream(basePath);
          ResourceBundle rb = new PropertyResourceBundle(is);
          nickname = rb.getString("nickname");
        } catch (FileNotFoundException e) {
          e.printStackTrace();
        } catch (IOException e) {
          e.printStackTrace();
        }
     
        return nickname;
      }
     
      /**
       * 测试
       * 
       */
      public static void main(String[] args) {
        System.out.println("name1:" + PropertiesUtil.getName1());
        System.out.println("name2:" + PropertiesUtil.getName2());
        System.out.println("name3:" + PropertiesUtil.getName3());
        System.out.println("name4:" + PropertiesUtil.getName4());
        System.out.println("password:" + PropertiesUtil.getName5());
        System.out.println("nickname:" + PropertiesUtil.getName6());
      }
    }

    原文链接 https://www.cnblogs.com/upward/p/9711824.html 

  • 相关阅读:
    js获取当前页面url网址等信息
    jQuery 复选框全选/取消全选/反选
    js获取日期实例之昨天今天和明天、后天
    mysql不重启修改参数变量
    php 读取功能分割大文件实例详解
    php批量删除数据库下指定前缀的表
    PHP遍历目录返回统计目录大小实例
    PHP二维数组如何根据某个字段排序
    PHP 如何获取二维数组中某个key的集合(高性能查找)
    jQuery 隐藏与显示 input 默认值
  • 原文地址:https://www.cnblogs.com/SI0301/p/11274018.html
Copyright © 2011-2022 走看看