日期:2014-05-16 浏览次数:20315 次
package com.ydq.read.propertyfile; import java.io.InputStream; import java.util.MissingResourceException; import java.util.Properties; import java.util.ResourceBundle; /** * 读取配置文件中的参数 * * 一般情况下,首页的内容是比较比较多,但内容结构大多也有本同的地方,比方说某几块内容都是展示的文章,只是文章来源的类别不同,或者说某几个版面都展示商品, * 只是商品所属分类不同罢了,那么我们在后台取数据时,都需要根据类别ID来取值的。一般做法都是把这些不同的来源ID在代码中写好,这种做法又分为以下三种情况: * * 1、前台写死ID,通过<jsp:include page="xx.do?id=xx">,可以进行动态的包含内容。 * * 2、可在service层写一个id的数组,String[] ids = * {“”,"",""};用ids数组的下标来获得id值,这样也可以实现,如果数据库的ID值发生改变,只需要改变service层的ID数组就行。 * * 3、用配置文件(这个配置文件以.properties结尾)。将ID值写在配置文件中,表示的方法就和map一样,key=value,这样就OK。 * * 下面我要说的是第三种方案,个人觉得第三种方案比第二种方案好,因为第二种方案改数据时,去找的话,有点不太方便。 * * @author 姚大庆 * */ public class CommonParam { private String propertyFileName; private ResourceBundle resourceBundle; public CommonParam() { propertyFileName = "ydqfile"; resourceBundle = ResourceBundle.getBundle(propertyFileName); } public String getString(String key) { if (key == null || key.equals("") || key.equals("null")) { return ""; } String result = ""; try { result = resourceBundle.getString(key);// 根据key获取value } catch (MissingResourceException e) { e.printStackTrace(); } return result; } public static void main(String[] args) { /* * 方法一:直接通过java.util.ResourceBundle读取配置文件 * CommonParam test = new CommonParam(); * System.out.println(test.getString("ydqa")); * System.out.println(test.getString("ydqb")); * System.out.println(test.getString("ydqc")); */ /* * 方法二:通过java中java.util.Properties对象读取配置文件 * */ CommonParam test = new CommonParam(); System.out.println(test.getPara("ydqfile.properties")); } /** * 学习JAVA中java.util.Properties对象读取配置文件 * @param fileName 配置文件名 * @return 根据key返回value */ public String getPara(String fileName) { Properties prop = new Properties(); try { InputStream is = this.getClass().getClassLoader().getResourceAsStream(fileName); prop.load(is); if (is != null) is.close(); } catch (Exception e) { System.out.println(e + " file " + fileName + " not found"); } return prop.getProperty("ydqb"); } }