獲取tomcat上properties文件的內容——方便文件存儲位置的修改,解耦和


  在java web開發的時候經常會用到讀取讀取或存放文件,這個文件的默認路徑在哪里呢?寫死在程序里面顯然是可以的,但這樣子不利於位於,假如有一天項目從window移植到linux,或者保存文件的路徑變了,就需要去源代碼中查找,進行替換,這樣子不僅效率低,而且程序的耦合度也會過高,這里我用了一個properties文件用於存放文件的保存路徑,需要保存或者讀取都來自己properties所保存的路徑。

1、我存放的propeities文件路徑

  因為linux和window上面的分盤是不一樣的,所以我把保存文件路徑的properties文件放在項目中,所以可以通過獲取tomcat所以路徑來獲取該文件

 

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、總結

  開發過程中,使程序解耦合很重要,耦合程度越低,我們開發修改越容易。

 

  致謝:感謝您的耐心閱讀!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM