获取tomcat上properties文件的内容——方便文件存储位置的修改,解耦和

  在java web开发的时候经常会用到读取读取或存放文件,这个文件的默认路径在哪里呢?写死在程序里面显然是可以的,但这样子不利于位于,假如有一天项目从window移植到linux,或者保存文件的路径变了,就需要去源代码中查找,进行替换,这样子不仅效率低,而且程序的耦合度也会过高,这里我用了一个properties文件用于存放文件的保存路径,需要保存或者读取都来自己properties所保存的路径。

1、我存放的propeities文件路径

  因为linux和window上面的分盘是不一样的,所以我把保存文件路径的properties文件放在项目中,所以可以通过获取tomcat所以路径来获取该文件

aaarticlea/png;base64,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" alt="" />

2、properties文件内容

  这里文件路径我使用了 / ,可以兼容linux系统和window,假如在程序中文件的分隔符建议使用File.separator作为分隔符,以兼容不同的操作系统。

filePath=E:/file

3、获取文件所在的路径

String dir = System.getProperty("user.dir");  //获得tomcat所在的工作路径
System.out.println(dir); //获取到存储了文件存储位置的filedir.properties 文件路径
String dir2 = dir.substring(0, dir.length()-4) + File.separator +"webapps" + File.separator + "NGBOSSmonitor" +File.separator + "WEB-INF"
+ File.separator + "classes" + File.separator + "META-INF" + File.separator + "config" + File.separator + "filedir.properties";

  dir 获取到的是  :D:\Tocat\tomcat6.0.37\bin

  我获取的dir2 为    D:\Tocat\tomcat6.0.37\webapps\你的项目名\WEB-INF\classes\META-INF\config\filedir.properties

4、通过properties文件,获取到里面的filePath的值,即获得 E:/file

/**
* 获取filePath路径【properities文件】中key对应的值,
* @param filePath properities文件路径【包含properities文件】
* @param key 要查找的key值
* @return key对应的value
*/
public String GetValueByKey(String filePath, String key) {
Properties pps = new Properties();
try {
InputStream in = new BufferedInputStream (new FileInputStream(filePath));
pps.load(in);
String value = pps.getProperty(key);
//System.out.println(key + " = " + value);
in.close();
return value; }catch (IOException e) {
e.printStackTrace();
return null;
}
}

  到达这里,已经完整得获得了filedir.properties 里面得 filePath的值。

5、总结

  开发过程中,使程序解耦合很重要,耦合程度越低,我们开发修改越容易。

  致谢:感谢您的耐心阅读!

上一篇:MySQL外键之级联


下一篇:修改MySQL数据文件的位置