首页 > 代码库 > java加载properties文件的六中基本方式实现
java加载properties文件的六中基本方式实现
java加载properties文件的方式主要分为两大类:一种是通过import java.util.Properties类中的load(InputStream in)方法加载;
另一种是通过import java.util.ResourceBundle类的getBundle(String baseName)方法加载。
注意:一定要区分路径格式
实现代码如下:
1 package com.util; 2 3 import java.io.FileInputStream; 4 import java.io.FileNotFoundException; 5 import java.io.IOException; 6 import java.io.InputStream; 7 import java.util.Properties; 8 import java.util.PropertyResourceBundle; 9 import java.util.ResourceBundle; 10 11 public class PropertiesUtil { 12 private static String basePath = "src/prop.properties"; 13 private static String name = ""; 14 private static String nickname = ""; 15 private static String password = ""; 16 17 /** 18 * 一、 使用java.util.Properties类的load(InputStream in)方法加载properties文件 19 * 20 */ 21 public static String getName1() { 22 try { 23 Properties prop = new Properties(); 24 InputStream is = new FileInputStream(basePath); 25 prop.load(is); 26 name = prop.getProperty("username"); 27 } catch (FileNotFoundException e) { 28 e.printStackTrace(); 29 } catch (IOException e) { 30 e.printStackTrace(); 31 } 32 return name; 33 } 34 35 /** 36 * 二、 使用class变量的getResourceAsStream()方法 37 * 注意:getResourceAsStream()读取路径是与本类的同一包下 38 * 39 */ 40 public static String getName2() { 41 Properties prop = new Properties(); 42 InputStream is = PropertiesUtil.class 43 .getResourceAsStream("/com/util/prop.properties"); 44 try { 45 prop.load(is); 46 name = prop.getProperty("username"); 47 } catch (IOException e) { 48 e.printStackTrace(); 49 } 50 return name; 51 } 52 53 /** 54 * 三、 55 * 使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法 56 * getResourceAsStream(name)方法的参数必须是包路径+文件名+.后缀 否则会报空指针异常 57 * 58 */ 59 public static String getName3() { 60 Properties prop = new Properties(); 61 InputStream is = PropertiesUtil.class.getClassLoader() 62 .getResourceAsStream("com/util/prop.properties"); 63 try { 64 prop.load(is); 65 66 } catch (IOException e) { 67 e.printStackTrace(); 68 } 69 return name; 70 } 71 72 /** 73 * 四、 使用java.lang.ClassLoader类的getSystemResourceAsStream()静态方法 74 * getSystemResourceAsStream()方法的参数格式也是有固定要求的 75 * 76 */ 77 public static String getName4() { 78 Properties prop = new Properties(); 79 InputStream is = ClassLoader 80 .getSystemResourceAsStream("com/util/prop.properties"); 81 try { 82 prop.load(is); 83 name = prop.getProperty("username"); 84 } catch (IOException e) { 85 e.printStackTrace(); 86 } 87 return name; 88 } 89 90 /** 91 * 五、 使用java.util.ResourceBundle类的getBundle()方法 92 * 注意:这个getBundle()方法的参数只能写成包路径+properties文件名,否则将抛异常 93 * 94 */ 95 public static String getName5() { 96 ResourceBundle rb = ResourceBundle.getBundle("com/util/prop"); 97 password = rb.getString("password"); 98 return password; 99 }100 101 /**102 * 六、 使用java.util.PropertyResourceBundle类的构造函数103 * 104 */105 public static String getName6() {106 try {107 InputStream is = new FileInputStream(basePath);108 ResourceBundle rb = new PropertyResourceBundle(is);109 nickname = rb.getString("nickname");110 } catch (FileNotFoundException e) {111 e.printStackTrace();112 } catch (IOException e) {113 e.printStackTrace();114 }115 116 return nickname;117 }118 119 /**120 * 测试121 * 122 */123 public static void main(String[] args) {124 System.out.println("name1:" + PropertiesUtil.getName1());125 System.out.println("name2:" + PropertiesUtil.getName2());126 System.out.println("name3:" + PropertiesUtil.getName3());127 System.out.println("name4:" + PropertiesUtil.getName4());128 System.out.println("password:" + PropertiesUtil.getName5());129 System.out.println("nickname:" + PropertiesUtil.getName6());130 }131 }
文件路径:
prop.properties文件:
1 username=mamama2 nickname=xiaoma3 password=123456
输出结果:
java加载properties文件的六中基本方式实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。