欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java获取resource目录下的文件

程序员文章站 2022-07-01 22:30:12
...

    我们通常需要获取resource目录下的文件如配置文件,用于进行相应的数据获取。在WEB程序里面的jar、resources都是由Tomcat内部来加载的,所以你在代码中动态加载jar、资源文件的时候,首先应该是使用

Thread.currentThread().getContextClassLoader()。
URL l1 = 
Thread.currentThread().getContextClassLoader().getResource("readFile/test1.xml");
System.out.println(l1);

URL l2 = 
Thread.currentThread().getContextClassLoader().getResource("collection/test2.xml");
System.out.println(l2);

URL l3 = Thread.currentThread().getContextClassLoader().getResource("test3.xml");
String l4=l3.getPath();//加上getPath()则去掉前面的file:
System.out.println(l3);  //file:/F:/demo/Studying/out/production/Studying/test3.xml
System.out.println(l4);///F:/demo/Studying/out/production/Studying/test3.xml

 
   上面的可以通过创建File文件,通过路径来读取文件内容。但是对于打包到jar文件中的资源文件,则不能通过上面的getResource方法获取了,可以通过Class类的getResourceAsStream()方法来获取,如下:

   InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("conf/job_two_one_mapping.txt");
   try(Scanner scanner = new Scanner(is)) {
       while (scanner.hasNextLine()) {
           System.out.println(scanner.nextLine());
       }
   } catch (Exception e) {
       log.error("读取文件数据异常" ,e);
   }