位置: IT常识 - 正文

Java获取/resources目录下的资源文件方法(java获取resources下文件路径)

编辑:rootadmin
Web项目开发中,经常会有一些静态资源,被放置在resources目录下,随项目打包在一起,代码中要使用的时候,通过文件读取的方式,加载并使用; 今天总结整理了九种方式获取resources目录下文件的方法。 其中公用的打印文件方法如下: 查看代码 /** * 根据文件路径读取文件内容 * * @p ...

推荐整理分享Java获取/resources目录下的资源文件方法(java获取resources下文件路径),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:JAVA获取文件夹下所有文件,java获取resources下的配置文件的值,java获取resources下所有文件名,java获取resources绝对路径,java获取resources下的文件夹路径,java获取resources下的配置文件的值,java获取resources下所有文件名,java获取resources绝对路径,内容如对您有帮助,希望把文章链接给更多的朋友!

Web项目开发中,经常会有一些静态资源,被放置在resources目录下,随项目打包在一起,代码中要使用的时候,通过文件读取的方式,加载并使用;

今天总结整理了九种方式获取resources目录下文件的方法。

其中公用的打印文件方法如下:

查看代码 /*** 根据文件路径读取文件内容** @param fileInPath* @throws IOException*/public static void getFileContent(Object fileInPath) throws IOException {BufferedReader br = null;if (fileInPath == null) {return;}if (fileInPath instanceof String) {br = new BufferedReader(new FileReader(new File((String) fileInPath)));} else if (fileInPath instanceof InputStream) {br = new BufferedReader(new InputStreamReader((InputStream) fileInPath));}String line;while ((line = br.readLine()) != null) {System.out.println(line);}br.close();}

1、方法一 :

主要核心方法是使用getResource和getPath方法,这里的getResource("")里面是空字符串

查看代码 public void function1(String fileName) throws IOException {String path = this.getClass().getClassLoader().getResource("").getPath();//注意getResource("")里面是空字符串System.out.println(path);String filePath = path + fileName;System.out.println(filePath);getFileContent(filePath);}

2、方法二:

主要核心方法是使用getResource和getPath方法,直接通过getResource(fileName)方法获取文件路径,注意如果是路径中带有中文一定要使用URLDecoder.decode解码。

查看代码 /*** 直接通过文件名getPath来获取路径** @param fileName* @throws IOException*/public void function2(String fileName) throws IOException {String path = this.getClass().getClassLoader().getResource(fileName).getPath();//注意getResource("")里面是空字符串System.out.println(path);String filePath = URLDecoder.decode(path, "UTF-8");//如果路径中带有中文会被URLEncoder,因此这里需要解码System.out.println(filePath);getFileContent(filePath);}

3、方法三:

直接通过文件名+getFile()来获取文件。如果是文件路径的话getFile和getPath效果是一样的,如果是URL路径的话getPath是带有参数的路径。如下所示:

url.getFile()=/admin/java/people.txt?id=5url.getPath()=/admin/java/people.txt

使用getFile()方式获取文件的代码如下:

查看代码 /*** 直接通过文件名+getFile()来获取** @param fileName* @throws IOException*/public void function3(String fileName) throws IOException {String path = this.getClass().getClassLoader().getResource(fileName).getFile();//注意getResource("")里面是空字符串System.out.println(path);String filePath = URLDecoder.decode(path, "UTF-8");//如果路径中带有中文会被URLEncoder,因此这里需要解码System.out.println(filePath);getFileContent(filePath);}Java获取/resources目录下的资源文件方法(java获取resources下文件路径)

4、方法四(★重要):

直接使用getResourceAsStream方法获取流,上面的几种方式都需要获取文件路径,但是在SpringBoot中所有文件都在jar包中,没有一个实际的路径,因此可以使用以下方式。

查看代码 /*** 直接通过文件名+getFile()来获取** @param fileName* @throws IOException*/public void function4(String fileName) throws IOException {String path = this.getClass().getClassLoader().getResource(fileName).getFile();//注意getResource("")里面是空字符串System.out.println(path);String filePath = URLDecoder.decode(path, "UTF-8");//如果路径中带有中文会被URLEncoder,因此这里需要解码System.out.println(filePath);getFileContent(filePath);}

5、方法五(★重要):

主要也是使用getResourceAsStream方法获取流,不使用getClassLoader可以使用getResourceAsStream("/people.txt")直接从resources根路径下获取,SpringBoot中所有文件都在jar包中,没有一个实际的路径,因此可以使用以下方式。

查看代码 /*** 直接使用getResourceAsStream方法获取流* 如果不使用getClassLoader,可以使用getResourceAsStream("/people.txt")直接从resources根路径下获取** @param fileName* @throws IOException*/public void function5(String fileName) throws IOException {InputStream in = this.getClass().getResourceAsStream("/" + fileName);getFileContent(in);}

6、方法六(★重要):

通过ClassPathResource类获取文件流,SpringBoot中所有文件都在jar包中,没有一个实际的路径,因此可以使用以下方式。

查看代码 /*** 通过ClassPathResource类获取,建议SpringBoot中使用* springboot项目中需要使用此种方法,因为jar包中没有一个实际的路径存放文件** @param fileName* @throws IOException*/public void function6(String fileName) throws IOException {ClassPathResource classPathResource = new ClassPathResource(fileName);InputStream inputStream = classPathResource.getInputStream();getFileContent(inputStream);}

7、方法七:

通过绝对路径获取项目中文件的位置,只是本地绝对路径,不能用于服务器获取。

查看代码/*** 通过绝对路径获取项目中文件的位置(不能用于服务器)* @param fileName* @throws IOException*/public void function7(String fileName) throws IOException {String rootPath = System.getProperty("user.dir");//D:\\java\\git\\springBoot-testString filePath = rootPath + "\\springmvc-test\\src\\main\\resources\\" + fileName;getFileContent(filePath);}

8、方法八:

通过new File("")获取当前的绝对路径,只是本地绝对路径,不能用于服务器获取。

查看代码 /*** 通过绝对路径获取项目中文件的位置(不能用于服务器)* @param fileName* @throws IOException*/public void function8(String fileName) throws IOException {//参数为空File directory = new File("");//规范路径:getCanonicalPath() 方法返回绝对路径,会把 ..\ 、.\ 这样的符号解析掉String rootCanonicalPath = directory.getCanonicalPath();//绝对路径:getAbsolutePath() 方法返回文件的绝对路径,如果构造的时候是全路径就直接返回全路径,如果构造时是相对路径,就返回当前目录的路径 + 构造 File 对象时的路径String rootAbsolutePath =directory.getAbsolutePath();System.out.println(rootCanonicalPath);System.out.println(rootAbsolutePath);String filePath = rootCanonicalPath + "\\java\\src\\main\\resources\\"+fileName;getFileContent(filePath);}

9、方法九:

主要是通过设置环境变量,将文件放在环境变量中,原理也是通过绝对路径获取。

示例中我设置了一个环境变量:TEST_ROOT = D:\\java\\git\\springBoot-test

System.getenv("TEST_ROOT");System.getProperty("TEST_ROOT")

通过设置环境变量的方式,然后通过绝对路径获取文件

查看代码/*** 通过绝对路径获取项目中文件的位置** @param fileName* @throws IOException*/public void function9(String fileName) throws IOException {System.setProperty("TEST_ROOT","D:\\java\\git\\springBoot-test");//参数为空String rootPath = System.getProperty("TEST_ROOT");System.out.println(rootPath);String filePath = rootPath + "\\springmvc-test\\src\\main\\resources\\" + fileName;getFileContent(filePath);}
本文链接地址:https://www.jiuchutong.com/zhishi/311749.html 转载请保留说明!

上一篇:记录--一道字节面试题引出的this指向问题(一字节的范围)

下一篇:帝国CMS如何设置默认自动分页(帝国cms建站教程)

  • 小天才怎么退出长续航模式(小天才退出睡眠模式)

    小天才怎么退出长续航模式(小天才退出睡眠模式)

  • 苹果手表怎么连接安卓手机(苹果手表怎么连接蓝牙耳机)

    苹果手表怎么连接安卓手机(苹果手表怎么连接蓝牙耳机)

  • 华为mate20快捷键怎么设置(华为mate20pro快捷键)

    华为mate20快捷键怎么设置(华为mate20pro快捷键)

  • 剪映怎么上下两个视频(剪映怎么上下两个不一样视频)

    剪映怎么上下两个视频(剪映怎么上下两个不一样视频)

  • 联通pt952g光猫是千兆的吗

    联通pt952g光猫是千兆的吗

  • 微信日期显示设置更改(微信日期显示设置怎么办)

    微信日期显示设置更改(微信日期显示设置怎么办)

  • wps口内打勾快捷键是什么(wps office 打勾)

    wps口内打勾快捷键是什么(wps office 打勾)

  • 拼多多怎么解除身份证绑定(拼多多怎么解除绑定手机号)

    拼多多怎么解除身份证绑定(拼多多怎么解除绑定手机号)

  • sim卡无效是什么意思(sim卡无效是啥意思)

    sim卡无效是什么意思(sim卡无效是啥意思)

  • 如何判断空调压缩机是否工作(如何判断空调压缩机坏了?)

    如何判断空调压缩机是否工作(如何判断空调压缩机坏了?)

  • 红米k20跑分多少

    红米k20跑分多少

  • 计算机网络系统是什么(计算机网络系统的功能有)

    计算机网络系统是什么(计算机网络系统的功能有)

  • 计算机多媒体技术的特点(计算机多媒体技术专业)

    计算机多媒体技术的特点(计算机多媒体技术专业)

  • ipad属于pc端吗(ipad属于电脑端还是手机客户端)

    ipad属于pc端吗(ipad属于电脑端还是手机客户端)

  • 淘宝店小二介入有用吗(淘宝店小二介入直接关闭退款)

    淘宝店小二介入有用吗(淘宝店小二介入直接关闭退款)

  • 不能写入信息的储存器为(不能写入信息的存储器)

    不能写入信息的储存器为(不能写入信息的存储器)

  • 闲鱼卖家怎么开通消费者保障(闲鱼卖家怎么开通运费险)

    闲鱼卖家怎么开通消费者保障(闲鱼卖家怎么开通运费险)

  • 电脑shift在哪

    电脑shift在哪

  • 一寸照换底色(一寸照换底色怎么操作)

    一寸照换底色(一寸照换底色怎么操作)

  • 自动回复可以续火花吗(自动回复可以续几天火花)

    自动回复可以续火花吗(自动回复可以续几天火花)

  • iphone8广角镜头在哪里(苹果8plus广角镜头)

    iphone8广角镜头在哪里(苹果8plus广角镜头)

  • 陌陌快聊能干嘛(陌陌快聊怎么没有了)

    陌陌快聊能干嘛(陌陌快聊怎么没有了)

  • iqoo虚拟按键设置(iqoopro虚拟按键)

    iqoo虚拟按键设置(iqoopro虚拟按键)

  • vivox23怎么设置红外线(vivox23怎么设置自动关机开机)

    vivox23怎么设置红外线(vivox23怎么设置自动关机开机)

  • beatsx怎么重置

    beatsx怎么重置

  • 图虫视频怎么保存(图虫视频怎么删)

    图虫视频怎么保存(图虫视频怎么删)

  • 不借助第三方软件管理启动项(不是第三方的贷款app)

    不借助第三方软件管理启动项(不是第三方的贷款app)

  • 含13%的增值税怎么算
  • 什么是纳税义务人,在理解这一观念时应注意哪些问题
  • 银行承兑汇票相当于贷款
  • 摄影服务属于哪个开票类目
  • 对外支付代扣代缴增值税
  • 已知不含税金额和税额怎么求税率
  • 充电桩收入属于什么类别
  • 零售商业企业经营的特点主要在于
  • 高新技术企业外债便利化
  • 查补以前年度所得税如何填写申报表
  • 待认证进项分录
  • 未计提企业所得税怎么写分录
  • 现金账冲账怎么冲
  • 跨年发票作废时间有限制吗
  • 海关缴款书认证不符
  • 住宿发票的税率0
  • 什么样的企业用交税
  • 给工会开发票企业需要报税吗?
  • 启用新账簿
  • 合伙企业如何计算缴纳个人所得税
  • 预缴企业所得税研发费用加计扣除
  • 红字发票不小心点了暂存怎么办
  • 接受捐赠收入要计入企业所得税应纳税所得额吗
  • 再保险的业务种类
  • 企业代扣员工社保怎样做分录
  • 混合销售行为的名词解释
  • 生产测试是指什么
  • 挖机所有权需要办理什么手续吗
  • window11 正式版
  • win 8和win 7有什么区别
  • php strrpos函数
  • 总结关于现金清查的会计核算分录
  • 工会经费是职工工资总额的
  • cpqdfwag.exe是什么进程 能结束吗 cpqdfwag进程查询
  • 非营利组织营利包括哪些
  • thinkphp获取数据库数据
  • 无形资产有进项税吗
  • php字符串处理函数有哪些
  • 物业公司代收水费账务处理
  • 送货运输费用税率
  • 销售人员的工资属于什么会计科目
  • 个人包含什么
  • 资金结存属于资产科目吗
  • sqlserver数据库获取当前时间
  • mysql导出用户和权限
  • 以前年度费用怎么记账
  • 盈余公积多计提对报表的影响
  • 银行扣款后又退回怎么办
  • 汇算清缴主要检查什么
  • 境外所得抵免限额大于境外承担的所得税税额
  • 交通费属于什么部门
  • 房地产开发企业增值税税率
  • 办理三证合一多久能拿到
  • 事业单位支付的劳务派遣人员工资计入什么科目
  • 会计每个月需要打印科目余额表吗
  • mysql无法配置
  • 猛料高手
  • virtualbox?
  • microsoft wlan
  • win7自带xp虚拟机怎么安装驱动
  • 系统引导程序出错了如何修复
  • rhel6.5安装教程
  • win10磁盘占用100%卡死
  • win8 桌面图标
  • xp系统停止服务了还能用吗
  • -f linux命令
  • win8打不开咋办
  • vs2008安装教程
  • 搜狐畅游手游官网
  • three.js入门指南
  • js跨域的几种方法
  • js异步实现原理
  • python项目打包发布
  • wxpython怎么用
  • js短信验证码60s倒计时
  • 税务综合办公系统操作手册
  • 廉租房取消之后有什么补贴
  • 山东地域分布
  • 工程合同可以违背国家规范吗
  • 税款复核需要多少天
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设