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 

  • 相关阅读:
    rdesktop ERROR: CredSSP: Initialize failed, do you have correct kerberos tgt initialized ? Failed to connect, CredSSP required by server
    nginx 服务器重启命令,关闭
    Libvirt磁盘加密
    qemu-nbd使用教程
    交叉编译Spice-gtk
    通过Python调用Spice-gtk
    远程桌面连接KVM虚拟机
    虚拟创建失败之Dbus调试
    Libvirt代码架构
    Libvirt外部快照
  • 原文地址:https://www.cnblogs.com/SI0301/p/11274018.html
Copyright © 2011-2022 走看看