`
lzkyo
  • 浏览: 456525 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Properties读取类

    博客分类:
  • Java
阅读更多
package cn.feigme.util;   
   
import java.net.URL;   
import java.util.*;   
   
/**  
 * Util class that will read properties from the WEB-INF/classes/directory  
 * or by specifying a URL on the filesystem.  
 * Also has a helper method for creating a platform independent URL.  
 */   
public class PropertyReader {   
   
   /**  
    * Retrieve the properties specified by the fileName  
    * The property file should be in the WEB-INF/classess directory  
    * Suppose you need to get the properties in the  
    * web-inf/classes/config/application.properties ,  
    * you need to pass the propertyFile: config/application.properties  
    *  
    * @param propertyFile relative path to a properties file in the WEB-INF/classes directory  
    * @return a <code>Properties<code> object based on the input file  
    **/   
   public static Properties getProperties(String propertyFile) {   
      try {   
         URL url = getPropertiesURL(propertyFile);   
         return getProperties(url);   
      }   
      catch (Exception e) {   
         System.out.println("Error ocurred during properties retrieval");   
         System.out.println(e.getMessage());   
         return null;   
      }   
   }   
   
   /**  
    * This method will return a platform independent URL to a file  
    * in the web-inf/classes direcotry.  
    *  
    * @param fileName relative path to a properties file in the WEB-INF/classes directory  
    * @return a platform independent URL to the xml file.  
    */   
   public static URL getPropertiesURL(String fileName) {   
      try {   
         System.out.println("Getting the properties URL");   
         URL url = null;   
         url = PropertyReader.class.getResource("/" + fileName);   
         String s = url.toString();   
         System.out.println("Filename of the  properties file is: " + s);   
         if (s.indexOf("file://") != -1) {   
            int indexOf = s.indexOf("file://") + 6;   
            String temp = s.substring(0, indexOf);   
            System.out.println("temp = " + temp + " moet zijn file:/");   
            url = new URL(temp + "//" + s.substring(indexOf));   
            System.out.println("The url is now: " + url);   
         }   
         return url;   
      }   
      catch (Exception e) {   
         System.out.println("Error ocurred during properties retrieval");   
         System.out.println(e.getMessage());   
         return null;   
      }   
   }   
   
   /**  
    * Retrieve the properties accesible through the specified URL  
    *  
    * @param url a reference to a properties file  
    * @return a properties file  
    **/   
   public static Properties getProperties(URL url) {   
      try {   
         Properties props = new Properties();   
         // Check for Solaris compatibility.   
         // A // in the file protocol won't be found in Solaris.   
         props.load(url.openStream());   
         System.out.println("Properties have been loaded: " + props);   
         return props;   
      }   
      catch (Exception e) {   
         System.out.println("Error ocurred during properties retrieval");   
         System.out.println(e.getMessage());   
         return null;   
      }   
   }   
}   

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics