读properties文件的时候,出现了或多或少的奇怪问题,这里把最终成功的方式描述一下。
PropUtil工具类
public class PropUtil { private String filePath = null; public PropUtil(String fileName) { this.filePath = getClass().getClassLoader().getResource("/").getPath(); filePath = filePath.substring(1, filePath.length() - 8) + fileName; // fixed tomcat readpath problem dml@2012.9.12 filePath = filePath.replaceAll("%20", " "); } public Properties getProp() { Properties prop = new Properties(); try { InputStream in = new BufferedInputStream(new FileInputStream( filePath)); prop.load(in); in.close(); } catch (Exception err) { err.printStackTrace(); } return prop; } }
调用的时候,直接实例化这个工具类对象即可
public static Connection getConnect() { PropUtil pu = new PropUtil("DB.properties"); Properties p = pu.getProp(); Connection con = null; try { String url = p.getProperty("url"); String Driver = p.getProperty("driver"); String user = p.getProperty("userName"); String pwd = p.getProperty("password"); Class.forName(Driver); con = DriverManager.getConnection(url, user, pwd); if (con == null) { System.out.println("can not find con"); } } catch (Exception e) { System.out.println("conn bad!"); e.printStackTrace(); } return con; }
以上是在tomcat中最终配置的方式。