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; } }
参考: