前言:
在项目中经常会有要读取静态文件,比如xml,json,properties文件。如果写死为“file:C:”,可以读到,但很不方便
正文:
目录结构:
方法1:class.getResource(name)
该方法接收一个表示文件路径的参数name,返回一个URL对象,该URL对象表示的name指向的那个资源(文件)。这个方法是在类中根据name获取资源。其中,name可以是文件的相对路径(相对于该class类来说),也可以是绝对路径(绝对路径的话,根目录符号/是代表项目路径而不是磁盘的根目录)
App.class.getResource('innerFile.txt') App.class.getResource('/test/test/innerFile.txt')
方法2:classLoader.getResource(name)
该方法作用与上一个方法一样,区别是该方法只能接收一个相对路径,不能接收绝对路径如/xxx/xxx
。并且,接收的相对路径是相对于项目的包的根目录来说的
App.class.getClassLoader().getResource('test/test/innerFile.txt')
参考博客:
Java项目中根据相对路径和绝对路径获取文件的方法 getResource(name) - 绕行的专栏 - CSDN博客
https://blog.csdn.net/c315838651/article/details/71915742