快速业务通道

Java相对路径寻址 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20
只能定位到classpath下的资源。

如果,它能够接受“../”这样的参数,允许我们用相对路径来定位classpath外面的资源,那么我们就可以定位位置的资源!

当然,我无法修改ClassLoader类的这个方法,于是,我编写了一个助手类ClassLoaderUtil类,提供了[public static URL getExtendResource(String relativePath)]这个方法。它能够接受带有“../”符号的相对路径,实现了自由寻找资源的功能。

Java?斤揃抄儖峽(4)

扮寂:2011-01-29 葡叫措

宥狛?斤classpath揃抄糞?徭喇儖孀彿坿議廁返窃議坿旗鷹?

import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import java.util.Properties; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /** *@author葡叫措shendl_s@hotmail.com *Nov29,2006 10:34:34AM *喘栖紗墮窃?classpath和議彿坿猟周?奉來猟周吉。 *getExtendResource(StringrelativePath)圭隈? *辛參聞喘../憲催栖紗墮classpath翌何議彿坿。 */ publicclass ClassLoaderUtil {    privatestatic Log log=LogFactory.getLog(ClassLoaderUtil.class);    /**    *Thread.currentThread().getContextClassLoader().getResource("")    */       /**    *紗墮Java窃。 聞喘畠?協窃兆    *@paramclassName    *@return    */    publicstatic Class loadClass(String className) {      try {       return getClassLoader().loadClass(className);      } catch (ClassNotFoundException e) {       thrownew RuntimeException("class not found ''"+className+"''", e);      }    }    /**     *誼欺窃紗墮匂     *@return     */    publicstatic ClassLoader getClassLoader() {         return ClassLoaderUtil.class.getClassLoader();    }    /**     *戻工?斤噐classpath議彿坿揃抄?卦指猟周議補秘送     *@paramrelativePath駅倬勧弓彿坿議?斤揃抄。     *@頁?斤噐classpath議揃抄。     *@泌惚俶勣臥孀classpath翌何議彿坿?俶勣聞喘../栖臥孀     *@return 猟周補秘送    *@throwsIOException    *@throwsMalformedURLException     */    publicstatic InputStream getStream(String relativePath) throws MalformedURLException, IOException {      if(!relativePath.contains("../")){       return getClassLoader().getResourceAsStream(relativePath);             }else{       return ClassLoaderUtil.getStreamByExtendResource(relativePath);      }         }    /**     *     *@paramurl     *@return     *@throwsIOException     */    publicstatic InputStream getStream(URL url) throws IOException{      if(url!=null){                 return url.openStream();      }else{        returnnull;      }    }    /**     *     *@paramrelativePath駅倬勧弓彿坿議?斤揃抄。頁?斤噐classpath議揃抄。     *@泌惚俶勣臥孀classpath翌何議彿坿?俶勣聞喘../栖臥孀     *@return     *@throwsMalformedURLException     *@throwsIOException     */    publicstatic InputStream getStreamByExtendResource(String relativePath) throws MalformedURLException, IOException{   

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号