package com.dev; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; import java.util.Properties; import org.apache.commons.io.FileUtils; /** * 读取Properties综合类,默认绑定到classpath下的config.properties文件。 * @author GaoYu */ public class PropertiesUtil { //配置文件的路径 private String configPath=null; /** * 配置文件对象 */ private Properties props=null; /** * 默认构造函数,用于sh运行,自动找到classpath下的config.properties。 */ public PropertiesUtil(String configPath) throws IOException{ // InputStream in = PropertiesUtil.class.getClassLoader().getResourceAsStream(configPath); InputStream in = FileUtils.openInputStream(new File(configPath)); props = new Properties(); props.load(in); //关闭资源 in.close(); } /** * 根据key值读取配置的值 * Jun 26, 2010 9:15:43 PM * @author GaoYu * @param key key值 * @return key 键对应的值 * @throws IOException */ public String readValue(String key) throws IOException { return props.getProperty(key); } /** * 读取properties的全部信息 * Jun 26, 2010 9:21:01 PM * @author GaoYu * @throws FileNotFoundException 配置文件没有找到 * @throws IOException 关闭资源文件,或者加载配置文件错误 * */ public Map<String,String> readAllProperties() throws FileNotFoundException,IOException { //保存所有的键值 Map<String,String> map=new HashMap<String,String>(); Enumeration en = props.propertyNames(); while (en.hasMoreElements()) { String key = (String) en.nextElement(); String Property = props.getProperty(key); map.put(key, Property); } return map; } /** * 设置某个key的值,并保存至文件。 * Jun 26, 2010 9:15:43 PM * @author GaoYu * @param key key值 * @return key 键对应的值 * @throws IOException */ public void setValue(String key,String value) throws IOException { Properties prop = new Properties(); InputStream fis = new FileInputStream(this.configPath); // 从输入流中读取属性列表(键和元素对) prop.load(fis); // 调用 Hashtable 的方法 put。使用 getProperty 方法提供并行性。 // 强制要求为属性的键和值使用字符串。返回值是 Hashtable 调用 put 的结果。 OutputStream fos = new FileOutputStream(this.configPath); prop.setProperty(key, value); // 以适合使用 load 方法加载到 Properties 表中的格式, // 将此 Properties 表中的属性列表(键和元素对)写入输出流 prop.store(fos,"last update"); //关闭文件 fis.close(); fos.close(); } public static void main(String[] args) { PropertiesUtil p; try { p = new PropertiesUtil("/opt/autologin/conf.properties"); System.out.println(p.readAllProperties()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }

fantesy LV17
3月24日
微信网友_7371218154688512 LV4
2月5日
a562571298 LV8
1月4日
LoveSummer LV6
2024年10月31日
yyh1252 LV8
2024年8月12日
全斐 LV6
2024年6月19日
yzyz0812 LV3
2024年5月23日
sunlea LV20
2024年5月10日
玖零定制问题修复 LV34
2024年4月4日
wanglinddad LV55
2024年3月28日

chengguo123
4月2日
暂无贡献等级
fantesy LV17
3月24日
docnnxxy688
3月22日
暂无贡献等级
1252590909 LV2
3月17日
952773464
3月10日
暂无贡献等级
微信网友_7398626323435520 LV2
2月25日
pxqtsht LV16
2月21日
空空的城 LV13
2月15日
微信网友_7371218154688512 LV4
2月5日
wyx065747 LV67
1月29日