获取web环境中的相应路径的工具类

本文详细介绍了在Web环境中获取类路径、WEB-INF路径及WEB_ROOT路径的方法,并提供了相关类的实现。
/**  
 * 获取web环境中的相应路径  
 *   
 * @author xwz  
 * @date Jan 5, 2010  
 */  
public class PathUtil {   
    public static final String CLASSES = getClassesPath();   
    public static final String WEB_INF = getWEB_INFPath();   
    public static final String WEB_ROOT = getWEB_ROOTPath();   
  
    /** 获取某个类所在的路径 */  
    public static String getClassPath(Class cls) {   
        String s = cls.getResource("").getPath();   
        if (s.startsWith("/")) s = s.substring(1);   
        return s;   
    }   
  
    /** 获取classes目录下的资源流 */  
    public static InputStream getInputStreamFromClasses(String packageNameAndFileName) {   
        try {   
            FileInputStream fin = new FileInputStream(CLASSES + packageNameAndFileName);   
            return fin;   
        } catch (FileNotFoundException e) {   
            e.printStackTrace();   
        }   
        return null;   
    }   
  
    /** 获取WEB-INF目录下的资源流 */  
    public static InputStream getInputStreamFromWebInf(String fileName) {   
        try {   
            FileInputStream fin = new FileInputStream(WEB_INF + fileName);   
            return fin;   
        } catch (FileNotFoundException e) {   
            e.printStackTrace();   
        }   
        return null;   
    }   
  
    /**  
     * 从jar文件获取资源流  
     *   
     * @param oneClassInJar jar里面的一个类  
     * @param fileName  
     * @return  
     * @author xwz  
     */  
    public static InputStream getInputStreamFromJar(Class oneClassInJar, String fileName) {   
        InputStream is = oneClassInJar.getResourceAsStream(fileName);   
        return is;   
    }   
  
    private static String getClassesPath() {   
        String s = PathUtil.class.getResource("/").getPath();   
        if (s.startsWith("/")) s = s.substring(1);   
        return s;   
    }   
  
    private static String getWEB_INFPath() {   
        String s = "";   
  
        String classes = getClassesPath();   
        int last = classes.lastIndexOf("classes/");   
  
        return classes.substring(0, last);   
    }   
  
    private static String getWEB_ROOTPath() {   
        String s = "";   
  
        String classes = getClassesPath();   
        int last = classes.lastIndexOf("WEB-INF/classes/");   
  
        return classes.substring(0, last);   
    }   
  
    public static void main(String[] args) {   
        System.out.println(PathUtil.CLASSES);   
        System.out.println(PathUtil.WEB_INF);   
        System.out.println(PathUtil.WEB_ROOT);   
        System.out.println(PathUtil.getClassPath(User.class));   
  
        InputStream classesIn = PathUtil.getInputStreamFromClasses("config/fckeditor.cfg");   
        InputStream webinfIn = PathUtil.getInputStreamFromWebInf("tlds/c.tld");   
        InputStream jarIn = PathUtil.getInputStreamFromJar(User.class, "/resource/res.txt");   
    }   
}  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值