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); }