zoukankan      html  css  js  c++  java
  • Properties读取资源文件的四种方法

     

     

     1 package com.action;
     2 
     3 import java.io.InputStream;
     4 import java.util.Locale;
     5 import java.util.Properties;
     6 import java.util.ResourceBundle;
     7 
     8 public class MainTest {
     9     
    10     public static void main(String[] args) throws Exception {
    11         //第一种方式 ClassLoader 使用这种方式时,path一定不能用使用绝对路径(也就是以“/”开头),虽然不是绝对路径 但它会从跟目录下找 (也就是从src往下找)
    12             Properties p1 = new Properties();
    13             InputStream is1 = MainTest.class.getClassLoader().getResourceAsStream("com/test.properties");
    14             p1.load(is1);
    15             String result1 = p1.get("test").toString();
    16             System.out.println(result1);
    17         //第二种方式  ClassLoader 使用这种方式时,path一定不能用使用绝对路径(也就是以“/”开头),虽然不是绝对路径 但它会从跟目录下找 (也就是从src往下找)
    18             Properties p2 = new Properties();
    19             InputStream is2 = ClassLoader.getSystemResourceAsStream("com/test.properties");
    20             p2.load(is2);
    21             String result2 = p2.get("test").toString();
    22             System.out.println(result2);
    23         //第三种方式 Class 使用这种方式时,path既可以使用绝对路径也可以使用相对路径,只要正确找到文件的路径即可
    24             Properties p3 = new Properties();
    25             //InputStream is3 = MainTest.class.getResourceAsStream("../test.properties");
    26             InputStream is3 = MainTest.class.getResourceAsStream("/com/test.properties");
    27             p3.load(is3);
    28             String result3 = p3.get("test").toString();
    29             System.out.println(result3);
    30         //第四种方式 ResourceBundle 使用这种方式时,资源文件必须放到src的根目录下面,并且getBundle()里面的参数不需要后缀
    31             Locale locale1 = new Locale("zh", "CN");
    32             ResourceBundle rb = ResourceBundle.getBundle("test",locale1);//Locale.getDefault();
    33             System.out.println(rb.getString("test"));
    34             //由于资源文件没有放在根目录下 导致异常  
    35             //java.util.MissingResourceException: Can't find bundle for base name test, locale zh_CN
    36     }
    37 
    38 }
  • 相关阅读:
    Python 虚拟环境 virtualenv
    Python
    开发语言之---Java
    LINUX系统
    关系型数据库之MySQL
    开发语言之---Python
    框架之---Django
    递归/面向过程编程
    迭代器/生成器函数及协程函数的编写和使用
    装饰器的编写及使用
  • 原文地址:https://www.cnblogs.com/Wen-yu-jing/p/3533708.html
Copyright © 2011-2022 走看看