您好,登錄后才能下訂單哦!
在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、總結
開發過程中,使程序解耦合很重要,耦合程度越低,我們開發修改越容易。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。