• 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 }
  • 相关阅读:
    毛皮立方体
    APPLE buSinEss
    #4613. problem C
    #4614. problem B
    idiots
    熊猫(i)
    圆盘自动机 cell
    小L的占卜
    有趣的数(number)
    「JOISC 2015 Day 1」卡片占卜
  • 原文地址:https://www.cnblogs.com/Wen-yu-jing/p/3533708.html
Copyright © 2020-2023  润新知