java读取web工程下的web-info路径

java读取web工程下的web-info路径  

当我们在做web工程时总会用到读取配置文件

那么一般把配置文件放在类同目录是比较好读取的

Properties config = new Properties();

InputStream in = ReadProp.class.getResourceAsStream(fileName);

config.load(in);

但是如果放在指定的工程下统一路径那么如何读取指定路径呢.

下面介绍一个比较好的方法.

 /**
  * @Descrption : 获取当前web工程部署路径并找到config文件夹
  * @return :String有则返回否则空
  * @Version:1.0
  * @Date:2012-6-8
  * @Author:lixw
  */
 public static String getWEBINFOPath(){
  String configpath = Thread.currentThread().getContextClassLoader().getResource("").getPath();
  if (StringUtils.hasContent(configpath)) {
   configpath = configpath.replace("classes/", "config/");
   configpath = configpath.substring(1, configpath.length());
  }else{
   configpath="";
  }
  return configpath;
 }

/**
  * @Descrption : 根据文件路径,需要读取的配置文件key 获得 key下的值
  * @param fileName
  *            文件路径名
  * @param configName
  *            key名称
  * @return :String 返回配置文件对应key下的值
  * @Version:1.0
  * @Date:2012-6-8

  * @Author:lixw
  */
 public static String getConfigFields(String fileName, String configName) {
  String getFields = "";
  try {
   String configpath = StringUtils.getWEBINFOPath();
   InputStream in = null;
   if (StringUtils.hasContent(configpath)) {
    in = new BufferedInputStream(new FileInputStream(configpath + fileName));// 读取指定目录下的配置文件
   } else {
    in = ReadProp.class.getResourceAsStream(fileName);// 读取当前类路径下的文件
   }
   config.load(in);
   getFields = config.getProperty(configName);
  } catch (Throwable t) {
   logger.error(t);
   t.printStackTrace();
   throw new ExceptionInInitializerError();
  }
  return getFields;
 }

你可能感兴趣的:(Java,web-info)