package config;
import java.io.*;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
/***---读取配置文件类---***/
public class AppConfig {
private static AppConfig config;//定义读取配置文件类
private Properties properties=new Properties();//实例化属性集合对象读写Properties文件
private Map<String, String> propMap = new HashMap<String, String>();//配置文件以map集合来读写key值和value值
/**
* 实例化静态对象
*/
public synchronized static AppConfig getInstance() {
if (config != null) {
return config;
} else {
config = new AppConfig();//如果该类的对象为空,则实例化。
return config;
}
}
/**
* 存放在src目录下的配置文件
*/
public String classPath()throws Exception{
//获得src目录下的路径
String srcUrl=java.net.URLDecoder.decode(this.getClass().getResource("/").getPath(),"UTF-8");
//在src目录下找到配置文件
String srcFileName=srcUrl+"/config.properties";//配置文件存放在src根目录下
return srcFileName;
}
/**
* 根据配置文件的key找到value值
*/
public String getConfig(String key) {
//如果配置文件中的key存在,找到对应的value值
if (propMap.containsKey(key)) {
return propMap.get(key).toString();//返回value值
} else {
return null;//未找到key值返回空
}
}
/**
* 存放在WEB-INF目录下的配置文件
*/
public String urlPath(){
//获得WEB-INF目录下的路劲
String webInfoUrl=this.getClass().getResource("").getPath().replaceAll("%20", " ");
//配置文件存放在WEB-INF/config的目录下
String webInfoFileName="WEB-INF/config/config.properties";
//在WEB-INF目录下找到配置文件
String webInfoPath=webInfoUrl.substring(0,webInfoUrl.indexOf("WEB-INF"))+webInfoFileName;
return webInfoPath;
}
/**
* 读取配置文件
*/
private AppConfig() {
try {
//String path=this.classPath();//调用存放在src目录下的配置文件
String path=this.urlPath();//调用存放在WEB-INF目录下的配置文件
InputStream confStream=new FileInputStream(path);//从数据流里读取数据
properties.load(confStream);//进行装载来获取该文件中的所有键值对
confStream.close();//关闭数据流
} catch (Exception e){
e.printStackTrace();//异常处理
}finally{
Enumeration<?> en = properties.propertyNames();//得到配置文件中的键值对集合
//使用对象循环配置文件中每一个key值,根据key值得到value值
while (en.hasMoreElements()) {
String config_name=(String)en.nextElement();//循环得到key值
String config_value=properties.getProperty(config_name).trim();//通过key值得到value值
propMap.put(config_name,config_value);//以key值和value值保存在map集合中
}
}
}
}
java读取WEB-INF或src目录下的properties配置文件
5星 · 超过95%的资源 需积分: 50 119 浏览量
2013-08-14
16:02:02
上传
评论
收藏 12KB ZIP 举报
fzw466452006
- 粉丝: 15
- 资源: 18
最新资源
- NC65 UAP65 流程开发 – 业务流 – 推单 详细笔记
- 两种计算CDF累加分布函数的Matlab程序,可以选择使用 .rar
- Windows操作系统介绍.zip
- 汉森的广义t分布的matlab程序(金融)cdf.zip
- Three.js介绍.zip0002
- 人工智能BBSO算法,MATLAB实现,很基本的人工智能算法,里面有很多源程序
- 高端大气科技互联网项目融资商业计划书产品公司品牌介绍PPT模板.pptx
- Sora AI文字生成视频实操教程、由给定的图片生成视频的教程说明书,祝你一臂之力 轻松上手Sora
- 网络安全说明:网络安全方面的资料,+适合网络安全的初学者
- 【移动应用开发】HarmonyOS应用服务开发,移动购物应用
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈