Java加载src目录下文件的几种方式

转自:http://www.blogjava.net/sxyx2008/

package com.future.util;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
 * 读取资源配置文件
 * @author coder
 *
 */
@SuppressWarnings("serial")
public class CommonPropertiesUtil {

    @SuppressWarnings("static-access")
    public static String getContextPath(){
        String contextPath="";
        try {
            
            //加载src目录下的文件的几种方式
            
            //注意当使用getClass()方式而不是getClassLoader()时资源文件前的"/"不能省略
            
            //InputStream stream=this.getClass().getResourceAsStream("/common.properties");
            
            //InputStream stream=Thread.currentThread().getClass().getResourceAsStream("/common.properties");
            
            InputStream stream=Thread.currentThread().getContextClassLoader().getResourceAsStream("common.properties");
            
            //谨记这种方式是错误的
            //InputStream stream=Thread.currentThread().getClass().getClassLoader().getResourceAsStream("common.properties");
            
            //InputStream stream=Thread.currentThread().getClass().getClassLoader().getSystemResourceAsStream("common.properties");
            
            //InputStream stream=this.getClass().getClassLoader().getSystemResourceAsStream("common.properties");
            
            //InputStream stream=this.getClass().getClassLoader().getResourceAsStream("common.properties");
            
            //InputStream stream=this.getClass().getClassLoader().getSystemResourceAsStream("common.properties");
            
            //InputStream stream=CommonPropertiesUtil.class.getClassLoader().getResourceAsStream("common.properties");
            
            //InputStream stream=CommonPropertiesUtil.class.getClass().getClassLoader().getSystemClassLoader().getResourceAsStream("common.properties");
            
            //InputStream stream=CommonPropertiesUtil.class.getClass().getClassLoader().getSystemClassLoader().getSystemResourceAsStream("common.properties");
            
            Properties properties=new Properties();
            properties.load(stream);
            
            contextPath=properties.getProperty("contextPath");
            
            System.out.println(contextPath);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        return contextPath;
    } 
    
    public static void main(String[] args) {
        getContextPath();
    }
    
}



 注:当直接使用getClass()而不是getClassLoader()方法时括号中资源文件名称前的/不能省略

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值