JAVA - 普通类读取WEB-INF里面配置文件

服务器:Tomcat 9

注意问题:配置文件应该放入Tomcat的正式工程目录中测试。

可用代码:

package com.daoen.rtis.test;

import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.util.Properties;

public class Test {

	public void GetPro() {

		try {

			String fileName = "db.txt";// property文件名
			String filePath = getWebPath(fileName);// 得到property文件在web工程里的全路径名称

			System.out.println(filePath);

			Reader myReader = new FileReader(fileName);// 读取property文件

			Properties prop = new Properties();// 创建Properties类
			prop.load(myReader);// 用Properties类对象加载文件

			System.out.println(prop.getProperty("ip"));
			System.out.println(prop.getProperty("port"));
			System.out.println(prop.getProperty("user"));
			System.out.println(prop.getProperty("password"));

			myReader.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	// 得到web容器路径
	// 注意:要在正式发布的web工程里面加入文件,不能在源代码工程里测试。
	public static String getWebPath(String fileName) {
		// file:/D:/JavaWeb/.metadata/.me_tcat/webapps/TestBeanUtils/WEB-INF/classes/
		String path = Thread.currentThread().getContextClassLoader().getResource("").toString();

		// 去掉返回路径中各种不需要的东西
		path = path.replace('/', '\\'); // 将/换成\
		path = path.replace("file:", ""); // 去掉file:
		// path = path.replace("classes\\", ""); // 去掉class\
		path = path.substring(1); // 去掉第一个\,如 \D:\JavaWeb...

		// 如果有文件名,则在路径上加入文件名
		if (fileName.isEmpty() == false) {
			path += fileName;
		}

		return path;
	}

}  

参考:

https://blog.csdn.net/shokuninn/article/details/53808629

https://www.cnblogs.com/lingtiaoti/p/9500322.html

posted on 2019-05-23 11:24  sunylat  阅读(1831)  评论(0编辑  收藏  举报