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

    文件路径:

     prop.properties文件:

    username=mamama
    nickname=xiaoma
    password=123456

    输出结果:

     

  • 相关阅读:
    jvm内存溢出问题
    表单提交后台正则表达式验证
    java项目改为web项目
    图片按像素压缩
    系统和压缩内存占用空间大
    teamview修改id
    新浪天气api
    SpringBoot+MySql+Mybatis+ thymeleaf 搭建个人博客
    FFmpeg的简单使用
    禁止f12及浏览器右键查看
  • 原文地址:https://www.cnblogs.com/zouhong/p/12159698.html
Copyright © 2011-2022 走看看