两种使用方式:
① T.class.getResourceAsStream(path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。
String path="/application.yml";
InputStream resourceAsStream = A.class.getResourceAsStream(path);
InputStream resourceAsStream = this.getClass().getResourceAsStream(path);
② T.class.getClassLoader().getResourceAsStream(path):默认则是从ClassPath根下获取,path不能以’/'开头,最终是由ClassLoader获取资源。
String path="/application.yml";
InputStream resourceAsStream1 = A.class.getClassLoader().getResourceAsStream(path);
③ 从输入文件流中获取属性列表:

bash_cmds.properties文件:
modifyIp=nmcli con modify "$1" "$2" "$3" ipv4.method manual
getDeviceDetail=nmcli device "$1"
加载bash_cmds.properties文件并获取属性列表:
public class Bash {
public static void main(String[] args) {
String cmdFileName = "/bash_cmds.properties";
InputStream inputStream = Bash.class.getResourceAsStream(cmdFileName);
Properties COMMANDS = new Properties();
try {
COMMANDS.load(inputStream);
System.out.println(COMMANDS.getProperty("getDeviceDetail"));
System.out.println(COMMANDS.get("modifyIp"));
} catch (IOException e) {
throw new RuntimeException("Load file " + cmdFileName + " failed!");
} catch (NullPointerException npe) {
throw new RuntimeException("File " + cmdFileName + " may not exist in classpath!");
今天碰到了一个加载文件的相对路径问题,异常如下:目录结构:读取文件的代码如下:public void load(String path) {
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(path));
String line = "";
while ((line = ...
假如我想要获取resources下的bean.properties文件,properties是以key,value形式存储,以下为文件内容。
读取一般有两种读取:
1、根据相对路径直接读取
InputStream inputStream = new FileInputStream("src/main/resources/bean.properties");
Properties properties = new Properties();
properties.load(inputStream);
但是通过这个路径无法获取到InputStream流,显示找不到文件,在resource目录下,使用以下路径,可以获取到File。学习模拟jieba分词实现加载词库。
Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。
Class.getClassLoader.getResourceAsStream(String path) :默认则是从ClassPath根下获取,path不能以’/'开
在Java开发中,经常需要读取项目中resources目录下的文件或获取资源路径。本文将介绍如何在Java中读取resources下的文件,并提供相关实例来说明。
Java对ZIP文件格式有直接支持。通常,我们将使用java.util.zip包中的以下四个类来处理ZIP文件格式:ZipEntryZipInputStreamZipOutputStreamZipFileZipEntry对象表示ZIP文件格式的归档文件中的条目。zip条目可以是压缩的或未压缩的。ZipEntry类具有设置和获取有关ZIP文件中的条目的信息的方法。ZipInputStream可以从每...
ClassPathResource classPathResource = new ClassPathResource("excleTemplate/test.xlsx");
InputStream inputStream =classPathResource.getInputStream();
InputStream inputStream =
Thread.currentThread().getContextClassLoader().getResourceAsStream("exc
mybatis作为一个轻量级的ORM框架,凭借着动态SQL,嵌套结果等技术风靡一些公司,作为一个初级程序员,看一些优秀的框架代码对于个人编码能力的提升有着不错的效果,其中的技术选型,设计模式等也是值得学习的。
先来一段普通的mybatis的代码:
InputStream inputStream = Resources.getResourceAsStream("SqlMappingConfig.xml");
SqlSessionFactoryBuilder builder = new SqlSessio
这里的getResourceAsStream方法会从classpath下查找“com/example/config/config.properties”文件并返回一个输入流,接着使用Properties对象将该输入流转换成对应的Java对象进行处理。在Java中,如果需要读取一个项目内的资源文件(如配置文件),可以使用ClassLoader的getResourceAsStream方法或Class的getResourceAsStream方法,它们都是根据类加载器在classpath下查找资源文件。
1 问题描述 通过源码运行时,一般使用如下方式读取资源文件:String 资源文件与源码文件放在同一目录下,或者拥有同一父级目录:String 这样直接编译运行没有问题,但是打成JAR包后会读取不了,直接抛空指针异常。2 解决办法使用URL或者InputStream进行读取:URL 注意不能在路径前加/:URL 这样读取出来是null。 getClass().getClassLoader().ge...
前言:很多时候我们需要加载resources目录下properties文件中的配置信息,可是路径的问题总是让人头疼,今天特意总结下。
我的是JavaSenior Maven项目下再创建一个JavaExer项目。
1. 使用FileInputStream读取resources目录下文件
现在我要获取JavaExer项目下resources目录下的jdbc.properties文件,路径应该这样写:
FileInputStream fis = new FileInputStream("JavaExer\\sr