用类加载器的5中形式读取. properties文件(这个. properties文件一般放在src的下面)
用类加载器进行读取:这里采取先向大家讲读取类加载器的几种方法,然后写一个例子把几种方法融进去,让大家直观感受。最后分析原理。(主要是结合所牵涉的方法的源代码的角度进行分析)
这里先介绍用类加载器读取的几种方法:
1。任意类名.class.getResourceAsStream("/文件所在的位置”);【文件所在的位置从包名开始写】
2。和. properties文件在同一个目录下的类名.class.getResourceAsStream(“文件所在的位置”);【文件所在的位置从包名开始写,注意这里和上面的相比较少了一个斜杠/?/p>
当然你也可以写成跟1一样的形式即:任意类名.class.getResourceAsStream("/文件所在的位置”);
3。任意类名.class.getClassLoader () .getResourceAsStream(“文件所在的位置”);【文件所在的位置从包名开始写】
4。任意类名.class.getClassLoader () .getResource(“文件所在的位置”).openStream();【文件所在的位置从包名开始写】
5。任意类名.class.getClassLoader () .getResource(“文件所在的位置”). . openConnection () .getInputStream();【文件所在的位置从包名开始写】
//一个例子,说明上述5中方法的用法。
上面图片中的各个红色矩形就是我要读取的属性文件。主要是两类。一类直接放在src下面。另一类是放在某个文件夹下面。
//f.properties文件的内容如下图所示,
//上述五种情况说明的代码如下:
包com.qls.commonclass; 进口java.io.IOException; 进口java.io.InputStream; 进口java.util.Properties; 进口com.qls.counter.Ok;/* * *分别用类加载器的5种方法读取f.properties文件。 * @author秦林森 * */公开课Test6 { 公共静态void main (String [] args)抛出IOException {//TODO自动生成方法存根/* *第一种情形获取输入流。 *任意类名.class.getResourceAsStream("/文件所在的位置”);【文件所在的位置从包名开始写】 * @param arg游戏 *///获取输入流 InputStream的=Test.class.getResourceAsStream (“/com/qls/counter/f.properties”);/* * *第二种情形获取输入流。 *和. properties文件在同一个目录下的类名.class.getResourceAsStream(“文件所在的位置”); *【文件所在的位置从包名开始写,注意这里和上面的相比较少了一个斜杠/? *这里随便选择一个与:f.properties在同一个目录下的类比如好这个类吧! *这里你自然也可以写成跟第一种情况一样的形式: *即: * InputStream in2=Ok.class.getResourceAsStream (“/com/qls/counter/f.properties”); *因为第一种情况是针对任意一个类而言的公式。 */InputStream in2=Ok.class.getResourceAsStream (“f.properties”);/* * *第三种情形获取输入流: *任意类名.class.getClassLoader () .getResourceAsStream(“文件所在的位置”); *【文件所在的位置从包名开始写】 */InputStream in3=Test2.class.getClassLoader () .getResourceAsStream ("com/qls/counter/f.properties”);/* * *第四中情形获取输入流: *任意类名.class.getClassLoader () .getResource(“文件所在的位置”).openStream (); *【文件所在的位置从包名开始写】 */InputStream in4=Test4.class.getClassLoader () .getResource ("com/qls/counter/f.properties”) .openStream ();/* * *第五种情形获取输入流: *。任意类名.class.getClassLoader () .getResource(“文件所在的位置”).openConnection () .getInputStream (); *【文件所在的位置从包名开始写】 */InputStream把=Test5.class.getClassLoader () .getResource ("com/qls/counter/f.properties”) .openConnection () .getInputStream ();//创建属性 属性道具=new属性();//把输入的流加载到道具中/* *验证上述5中输入流是否成立。只需带入道具。负载(InputStream InputStream);验证即可。 *也就是: * prop.load(的); * prop.load (in2); * prop.load (in3); * prop.load (in4); * prop.load(把); */prop.load(把); System.out.println(“泗溪=" + prop.getProperty(“泗溪”)); System.out.println (" ouyangfeng=" + prop.getProperty (ouyangfeng ")); System.out.println(“强奸=" + prop.getProperty(“农场”)); } }/* 输出: 泗溪=河 ouyangfeng=质量 农?花 * *///:~java用类加载器的5种方式读取. properties文件