java 代码里读取jar包下resources目录下的文件

createh54个月前 (12-30)技术教程39

简述

java项目里,我们时常需要读取一些自定义的文件,我们一般也会把这些文件放在resources目录下,但有时候,我们在idea开发时明明是可以读取到文件的,一打包放到Linux或者Tomcat上运行就会报错,说找不到指定的文件。下面我们就来实践一下常用的几个读取文件的方式。

(阅读本文大概耗时1分钟)

实践

先列举将要实践的几个方式:

  1. java.io.File
  2. java.lang.ClassLoader#getSystemResourceAsStream
  3. class.getClassLoader().getResourceAsStream
  4. org.springframework.core.io.FileSystemResource
  5. org.springframework.core.io.FileSystemResourceLoader

先实践这几种,有jdk有spring的,下面看图说话:

1、java.io.File

idea下都读取不到,我们就不试jar包了。(下同)

2、java.lang.ClassLoader#getSystemResourceAsStream

3、class.getClassLoader().getResourceAsStream

4、org.springframework.core.io.FileSystemResource

5、org.springframework.core.io.FileSystemResourceLoader

综上,第3,第5种方式都行;为操作方便,我建议统一使用第3种方式:

当前类名.class.getClassLoader().getResourceAsStream("text.txt")

OK,各位道友若还能想出其他方式,敬请留言。

相关文章

Java学习目录(thinking in java目录)

一、Java基础Java基础-继承Java基础-抽象Java基础-接口Java基础-多态Java基础-重写Java基础-匿名对象Java基础-内部类Java基础-final、static关键字Java...

Java集合-Properties(Java集合框架)

Properties(java.util.Properties)类,跟Map的key和value都为String类型比较相似,Properties类可以将 c key和 value键值对写道磁盘的pr...

java创建文件夹的4种方法及其优缺点 最全面总结

本文为大家介绍Java IO-创建文件夹的四种方法,及其优缺点的解析。如果您阅读完成,觉得此文对您有帮助,请给我点个赞,您的支持是我不竭的创作动力。1.传统API创建文件夹方式Java传统的IO AP...

根据进程号排查进程及路径(通过进程号查询数据库)

根据进程号排查进程及路径netstat -ntpl1、lsof -i:端口号2、netstat -tunlp|grep 端口号都可以查看指定端口被哪个进程占用的情况ls -al /proc/22938...

在Java程序中监听mysql的binlog(java监听mysql数据表变化)

1、背景最近在开发的过程中遇到这么一个问题,当产生某种类型的工单后,需要实时通知到另外的系统,由另外的系统进行数据的研判操作。 由于某种原因, 像向消息队列中推送工单消息、或直接调用另外系统的接口、或...

带你入门Java之每日3分钟Java——初识Java

在带你入门Java之IDEA的插件安装中,笔者初步介绍了IDEA的一些插件。有读者反馈,安装速度不是很行,其实这个问题不止存在于IDEA,同样在Eclipse中也是存在的。解决方法是在插件的实际下载地...