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

时间:2022-11-02 18:43:30

转自: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()方法时括号中资源文件名称前的/不能省略