Java读取资源文件的5种方法

本文介绍在Java中从不同位置读取资源文件的五种方法,包括使用类加载器、Class对象等手段,适合各种文件存放场景。
[url]https://www.cnblogs.com/EasonJim/p/6517653.html#autoid-0-0-0[/url]

package com.zkn.newlearn.others;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

import com.zkn.newlearn.gof.singleton.SimpleFactoryTest01;

/**
* 读取资源文件的五种方式
* @author zkn
*/

public class ClassReadResourceDemo {

public static void main(String[] args) {
/**
* 第一种方式 用类加载器读取资源文件。
* 适用情形:资源文件和类文件在不在同一目录都可以。
* 注意:getResourceAsStream里的参数要
* 写资源文件的全限定路径,包名+文件名
* 开头千万不要写"/"
*/
InputStream is = ClassReadResourceDemo.class.
getClassLoader().getResourceAsStream("com/zkn/newlearn/io/config.properties");
Properties prop = new Properties();
try {
prop.load(is);
System.out.println(prop.getProperty("key"));
is.close();
} catch (IOException e) {
e.printStackTrace();
}
/**
* 第二种写法:用class.getResourceAsStream()(其实还是用的类加载器)
* 适用情形:如果资源文件和类文件在同一包下,直接写资源文件的名称就行了,
* 注意:资源文件的名称前面不需要加“/”
*/
is = ClassReadResourceDemo.class.getResourceAsStream("config.properties");
try {
prop.load(is);
System.out.println(prop.getProperty("key"));
is.close();
} catch (IOException e) {
e.printStackTrace();
}
/**
* 第三种写法:用class.getResourceAsStream()(其实还是用的类加载器)
* 适用情形:这个写法适用的情形是资源文件和类文件不在同一个目录下的情况
* 注意:开头一定要加上”/“
*/
is = ClassReadResourceDemo.class.getResourceAsStream("/com/zkn/newlearn/io/config.properties");
try {
prop.load(is);
System.out.println(prop.getProperty("key"));
is.close();
} catch (IOException e) {
e.printStackTrace();
}
/**
* 第四种写法:用class.getResourceAsStream()
* 适用情形:这种写法适用于资源文件在根目录下的情况
* 注意:文件名称前面一定要加上”/“
*/
is = ClassReadResourceDemo.class.getResourceAsStream("/config.properties");
try {
prop.load(is);
System.out.println(prop.getProperty("key"));
is.close();
} catch (IOException e) {
e.printStackTrace();
}
/**
* 第五种写法:用类加载器来读取资源文件
* 适用情形:资源文件在跟目录下
* 注意:资源文件名称前面一定不要加”/“
*/
is = ClassReadResourceDemo.class.getClassLoader().getResourceAsStream("config.properties");
try {
prop.load(is);
System.out.println(prop.getProperty("key"));
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值