通过Class来加载输入流和文件

Java中的Class对象可通过两种方式加载输入流。

 

1. this.getClass().getResourceAsStream(fileName);

这种方式以当前类所在package为根目录来寻找文件。

 

2. this.getClass().getClassLoader().getResourceAsStream(fileName);

这种方式从当前classpath中寻找文件。

 

比如有以下目录结构

+src

  +test1

    -Test1.java

    -1.txt

  +test2

    -Test2.java

    -2.txt

  +classpath

    -config.properties

其中classpath目录为classpath的根目录

 

在Test1.java中,可以通过如下方式访问1.txt和2.txt

this.getClass().getResourceAsStream("1.txt");

this.getClass().getResourceAsStream("../test2/1.txt");

 

访问config.properties

this.getClass().getClassLoader().getResourceAsStream("config.properties");

 

另外,如果想获得File对象,可以分别使用

this.getClass().getResource(fileName).getFile();

this.getClass().getClassLoader().getResource(fileName).getFile();

 

你可能感兴趣的:(通过Class来加载输入流和文件)