java加载properties文件的六种方法总结
程序员文章站
2024-02-20 13:29:40
java加载properties文件的六种方法总结
java加载properties文件的六中基本方式实现
java加载properties文件的方式主要分为两大类...
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文件:
1 username=mamama 2 nickname=xiaoma 3 password=123456
输出结果:
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
下一篇: python实现二维码扫码自动登录淘宝