Code Bye

java web工程中读取properties文件,路径怎么写

 

properties文件放在WEB-INF\config\uas-system.properties

我的代码是:

 //根据key读取value
	public static String readValue(String key) {
		Properties props = new Properties();
		try {
			InputStream in = new BufferedInputStream(new FileInputStream("/uas-operation.properties"));
			props.load(in);
			String value = props.getProperty(key);
			System.out.println(key + value);
			return value;
		} catch (Exception e) {
			e.printStackTrace();
			return "";
		}

试了很多路径都不对,请问这个路径问题怎么解决?谢谢


15分
为什么不直接放在WEB-INF\classes下面,如果直接放在WEB-INF\classes下面就很容易了。
直接用resourcebundle或者Class.getresourceasstream都能够很容易获取到。

如果放在WEB-INF的config目录,我估计得先获取工程的目录,然后再根据工程目录的相对目录找到文件。

路径不是试出来的,建议楼主先了解清楚classpath的概念。你就不会不知道文件该放在哪儿了
楼主可以在路径上面试试 “../”+你的路径,这种表示方法是往上一层,代码的运行是在classes包里面的,这样就可以跳出这个文件夹在父文件夹中选择包了,下面应该是config\~~~。

5分
Class.getResourceAsStream(String path) 
path 不以’/””开头时默认是从此类所在的包下取资源,以’/””开头则是从ClassPath根下获取。
哎,项目以前就是放在这个文件夹下的。我只是顺势而为,希望有人给出解决办法
直接写不行么
WEB-INF\config\uas-system.properties
request.getSession().getServletContext().getRealPath("/WEB-INF/config/uas-system.properties");
String path = SysConfig.class.getClassLoader().getResource(“”).getPath();
算了,不纠结了,如果谁知道怎么把WEB-INF\config\uas-system.properties的文件读出来希望能把测试后的带发上来~
我已经把properties文件放入classes文件夹下了,用以下代码可以:
public static String readValue(String key) {
		Properties props = new Properties();
		try {
			InputStream in=UasTagFunction.class.getResourceAsStream("/uas-operation.properties");
			props.load(in);
			String value = props.getProperty(key);
			return value;
		} catch (Exception e) {
			e.printStackTrace();
			return "";
		}
	}
public static String readValue(String key) {
        Properties props = new Properties();
       FileInputStream fis=null
        try {
            fis=new FileInputStream(new File(UasTagFunction.class.getResource("/").getPath()+"config\uas-system.properties"));
            props.load(fis);
            String value = props.getProperty(key);
            return value;
        } catch (Exception e) {
            e.printStackTrace();
            return "";
        }
    }
public static String readValue(String key) {
        Properties props = new Properties();
        FileInputStream fis=null
        try {
            fis=new FileInputStream(new File(UasTagFunction.class.getResource(“/”).getPath()+”config/uas-system.properties”));
            props.load(fis);
            String value = props.getProperty(key);
            return value;
        } catch (Exception e) {
            e.printStackTrace();
            return “”;
        }
    }
// 先拿到…./WEB-INF/class/目录
// 此时path是以/开头的,比如/D:/tomcat5/…,需要把开始的/过滤掉
String path = Thread.currentThread().getContextClassLoader().getResource(“”).getPath();
// 读取文件到Stream流
InputStream in = new BufferedInputStream(new FileInputStream(path+fileName));

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明java web工程中读取properties文件,路径怎么写