java用类加载器的5种方式读取. properties文件

  

用类加载器的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中方法的用法。

  

癹ava用类加载器的5种方式读取.

  

上面图片中的各个红色矩形就是我要读取的属性文件。主要是两类。一类直接放在src下面。另一类是放在某个文件夹下面。

  

//f.properties文件的内容如下图所示,

  

癹ava用类加载器的5种方式读取.

  

//上述五种情况说明的代码如下:

        包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文件