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

1、我存放的propeities文件路径

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

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQEAAADgCAIAAACM4UQ5AAAR9ElEQVR4nO2dXWwcxQHH76XqYx+rPFSUloYIq0T4IVJPVRxFKpH7Yj5kZCuBi4LZEAmkxAGRtKrOce3oUEDdhq8glDunJU4QuKJNc3wlWocoDnmhDpXIlRN1goliYhtMhNCBoNOHPe/N7nzc3nk/Znf+P82Dd70zO2fP72b3vH9PhgCgAbVabXZ29tq1a4uLi19QLC0tZYI6x8yMlS+VukpWvlSambGCahaAQAjdgZkZq8uycpY1OTk5NvZyV8mCBkApgnfg4sRepxBC8paVK1klq2TN5C2rlMtbuXypfmgmg9J+AQERsAPTr+11b+7pKlmTk5OWlcuXuvKlrq58V1euVP927MMo0QUERDAOPLfvyef2PfncvsK3nxW//az49czzCxcPzJ75w3/+sStfKuVLVr6Uz+e6cvlcVy6fz+fr1WIfRokuICBacMCyrEKhwG3lyd8/Pfrn98iX77JlZsbqKlldJcueAbpy1G1x7MMo0QUEhF8HTp8+3dHRsXr1alFDg7ueIfMnuGVmxsrnS105a2hoyHVDHPswSnQBAeHLAVuAvr4+iQMPbn+RXH1ZXh7c/qKrTuzDKNEFBERzBxwB+vv7RQ5UNvawZevAYbvkBg5vfehwzv76ocNbBw7Xq8U+jBJdQEA0cYAWQO7A7BNDC2PHPt5sLIwdm31iqLKx5+9XvueWu7f8tV4t9mGU6AICookDhUJhNcX+/fu5rVQ29iyMHSOEzJkvEEIWxo5VNva88uE3r3xYe+XDb6hS+03v8Ua12IdRogsIiGA+G61s7Pl4s2ELMGe+8PFmo7Kxpzh1o3juRnHqxuFzN4pTN4pTN35112uuarEPo0QXEBAhOnCwvHDw5PzB8vzBkwsHy/Nrf/t6aK8CgPYJzAH2WmjNnSfoEtYrAGBlBOYAfU98rWBWNvaE12kAAiQwB9gSXqcBCJAo8gMAqAwcALoDB4DuwAGgO3AA6A4cALqjugPG+s64uwBSjioOnD2wzimEkOFNq9gSZX+APijhwMQjt9Cbs/96a3jTqm+/fntu6tmn7r/T/gIOgJCIwgFJEJkQcnZ0XW3uUG3u0FLFnJsuXJ7c88XM1PCmVXNTz37w6pCxvtP+Ag6AkAjdgaZB5FOjnbWl9+iyt2fD8KZVT91/p7G+0y5P3X/n8KZV3HuDqpnN1DHKyzuMctnIZDJZs0oIIWVj+Yj6DgAownXATxD5VL6zNvc6Xb77esa5FjLWd8quhewBz+zKNHaWDQx9ICVEB/wEkW2uXyhdOdp7/UKJEDIxuFZSmKr2ezw9yN1alA0YAOSE5YDPILLNlaO95Lt/XznaSwipXT7ELXPTBZ4DNvZ7vz3Y4QBojbAc8BlEJoRcn3yqVhm6a02mVhm6Pvk0IaRWKXiKUICqaZaXv6oPfc/lUdloXBiVTegAGOL/bPTK0V7HgfpUMD1EF+kMQN3w1kc6c4vQuGv23DkAQEjsDlw5sWdxcmutMvTB4fW1ytCitfWTE3tq040iFwCAlRO3A0d7v//v8OK7j921JrP47mPffzx85Whv0biVLhF0A+hMzA5Mjd7+v9nnlyrmyWfvWaqY5JPnp0Zvj+C8ADjE7MDV82NTo7fT5er5sQjOC4BD/PfEAMQLHAC6AweA7sABoDtwAOgOHAC6kzYHdv36x3F3IYmUjfqDJM4XGpF4B6zhO8787pdOeab3JnrTGr4j7g4mAjigmAPnzp376quvfB585omOqlW8euHI1QtH3n/1QHFnH7155omOULvqhpPoCaFKGG3CAcUcGB8fP378+MLCgp+Drcdvu3rhyDdfvrN4cfzSmy8Ud/bRm9bjt4XdWwo4kEgUdeD69esvvfTSp59+2vTgd3bddvXCkcWL44sXxy+9dch2wNl8Z5fEATZn3NjjTmNmzXL9AWyj3DjKHc6h6opzzO70M1ulrb6ZdH88bcrS1e52WAfYPrCtpQFFHSCELCwsmKb50UcfyQ9+49E177964NKbL1x669D5seG9PRvozTceXSOox+aM3Xsa2RvqV26PCjq772qT3kUH2Jb3N6nSbt8a/WGTdNJ0tasd9gum/97WUoK6DhBCrl27tm/fvs8//1x0JB1ELu7s29uzwS7FnX12eab3Jv4nRWzG0rvH+cXT3xB97anifrf1vkmL088r6lvVzPIdECdL6XbcDvD7H8aVW/yo68Di4mLTeYAOIts3wXt7NtD3xH978Bf8mr7GmfPm35YDwqsFcfp5RX1rzwGnHcYBTv/hQFSMj4/Pz883vR9gg8jsPfErW38uqM3mjJnrhMYFtNQB/kUI3T4pG/VLCVn6udFOe33z4YCsHfZaiOk/HIgMn58LsUFk9p746JafCetzcsbi+05fDiw32RiK4hO4L9gzWbNKtdNW3xwH6G6wo9b3PTGn/3AgKvz8fYAbRD4/Nlzc2UffE/+lX+wAAIQQNR3wAzeIPNZ/8zO9N4313+yUc3/Ev24HTUiqA6IgMp4XAq2SVAcQRAZBkVQHAAgKOAB0Bw4A3YEDQHfgANAdOAB0J20O4O8DoFUS7wDyxGCFqOgA8sQgSlR0AHliECWKOqB3ntjHGYUPNvOfzubt5/YwnYlhOYo6QLTPE0vPWDUNKsVAfTtDn7/Jfo0Sw3LUdYBomyf2d0ZmJvA0JVqoc3lTp8SwHHUd0DdP7Cu5RkfX2nVAm8SwHEUd0D5PLD0jta9qZl3XPK4gpHy/RolhOYo6oHeeuOnM02g6axiuecBgb31F+zVKDMtR0QHkidtCNHx1HNYtoaIDfkCemAEOtElSHUCemAEOtElSHUCeGARFUh0AICjgANAdOAB0Bw4A3YEDQHfgANCdtDnQ3d0ddxeUQfbcHnH9m3W9SbwDIyMjO8SMjIzE3cH4gAP+SLwDO3bsmJ2vOYXdjLAvimUp4YA/Eu/A9u3bZ+dr9tez87WHH3Ztbt++PcK+wIFEkngHBgYG6EFvGA/RmwMDA+KqSc4T87vq2e/NhjIvFg4QkgIHtm3bRl/8dHd305vbtm0T1Et0nljWVVdWgb90n5MRhQOEJN2B7u7uBx7IOaV7Gc9OTs1E54lFXfXsdzaFnYEDhCTdAULIls1bJPPAls1b+NUSnScWdVXiAKczcKBO4h3o7++jbwDYTUG9JOeJZV11hzQ5+53oMByok3gHent76UF/33330Zu9vb3CmgnOE4u66r71NT13AZ6j4UCdxDtwz7330hc/d999N715z733xt1BoDqJd2D37t09d/WIyu7du+PuIFCdxDvgAc8LgVZJmwMAtAocALoDB4DuwAGgO3AA6A4cALoDB4DupM0Bjf/fqOupDeCfxDuA9YkbwIG2UNEBrE8MokRFB7A+MYgSRR3Qe33iJo9de5/YdjZcQsleneyRav1Q1AGi8/rEnH281hr72Pa5r85Pf3REXQeI1usTuw8TtuZMCe5QGvfV+eqPjqjrgMbrEzOHCVqzdzsdbeKAr/7oiKIOaL0+MecwbiDY9tQwlhXwXAuxr85Hf3REUQf0Xp+Yc5jg7tW1/rZrJLOvzl9/NERFB7A+MYgSFR3wA9YnBkGRVAewPjEIiqQ6gPWJQVAk1QEAggIOAN2BA0B34ADQHTgAdAcOAN1JmwNa/H3A9V/aNX7IISAS74COeWI4ECgqOoA8se8j4UAAqOgA8sS+j4QDAaCoA1rnib2PQDNHunICcGClKOoAQZ7Y+7UnbQMHAkNdB4i2eWI4EC3qOqBvnhgORIuiDmieJ3aHM+FAuCjqgOZ5Yqdq1jBcIx/3xCGgogPIE4MoUdEBPyBPDIIiqQ4gTwyCIqkOIE8MgiKpDgAQFHAA6A4cALoDB4DuwAGgO3AA6A4cALqTeAfOHljnlFbqiRZfodIC9BM/3vyMZzfVpvj5Hac552k58aJh7lPru0ZMFCTbgYlHbpFsSqma2Uw2m+U8/ex2QDCkeQ+rVc1sNiuPRlLP3FXNbMYw3I9Ys8vsgfBR2gHLsgqFgui7Z0fX1eYO1eYOLVXMuenC5ck9ldd3nh1dRxdx21UzmzFMz0irmtmsafoZiBwH7MCB/ElOrwNl99LycCAO1HXg9OnTHR0dq1evFh1warSztvSepJwalTww1wjqeoegr4HIDvXlzI0sPcM64L6AggNxoKgDtgB9fX0yB/KdtbnXJaWY+6n4DNQqv56Qiuii3DUkGQf4mRsvHAdoCwSnxu1AqKjogCNAf3+/xAHizhNPDK6VFKaqK8mVNauN8dfWPCAI2ji30KwfzAJ6rlkJ80B0KOcALUBTB+g8ce3yIW6Zmy5IHagPTJPzPu7fAfbjIn49gQPLFhhwIAaUc6BQKKym2L9/v+hINk9cqxQ8RSAAYbO/GXqrVQdc4WHONv0NvgMtfCQFAkY5B/zD5olr00N0EQtAPIPMtSG6H/B+itkYouyQ50rA/n3AfUjVzMKBGEiqA9w8cW26UaQCANAgsQ7w8sRF41a6xN1HkAyS6oAoTwxAqyTVAeSJQVAk1QEAggIOAN2BA0B34ADQHTgAdAcOAN2BA9FTf2bCMF35GRAX+jrQbhB5pbhzA3AgfjR1YAVB5JUizZmBGEinA2EGkVcKHFCNFDoQchCZtLawselazJg6zs7Ts6s00XEeEAVpcyD8IHKLCxszl/68iA4dN6BTBCAKUuWAzyDyP/OdtctjTmktiNzmwsbOSq88Bzwt4GopWtLjgP8g8sRgR61i2mVicG1rQeQ2FzaGA+qSHgf8B5GPPnKLnTaeGFzLRpCbBZHbW9hY6gCuhWIlPQ74p5j7SW16z8TgWk/+2F8Qub2FjeUO0G3injhqdHTgT/esmhhcS4eP1Qoi41ooWnR0gBDiSR7HHUSumlnXlAIFokRTB5SD+jcuECBi4ADQnZgcyEAwoArxzQOZDEwAKhD3tRBMAHETtwM2MAHEhxoO2EADEAcqOUAwIYAYUMwBG4VNyGQyP/jhD+UlE2Lnl//n+0pymOnIcAb3KpR0wEZJDTKZzI92HJcXOBAFWjhAVJwQVHGgZdKxqEcor0JtB2xUMsG77JiA0M4PB/R0wEYNE/yMb+Ex1ENB9DPTRrnx6HWz/fS1EOfJbXYRqeWQDnWEoK48Ce15GU363HhOnG1cVJ33QlxtZhsrY4lfBf20OucMPJLjgE3cGtjj23mz584AAgeqpkGt3kqvTexaHFC+n3WAfc5UeKJ6c6K6zZLQjfb99FnYuOSluQaw8zoZf9hXwVRsZcJImgMk5glhRfMA583J87ty/e55+xkHBGED2YmEdZskoZnDpH0WNi6ozixvmzWr4nO5O8upaO/1ddOcQAdsYjKh/XmAv+pkCA40PZHMAVkSmumMtM/CxsUOcEasPweEQ91+K2hiQmIdsIlcg/bnAc/SxPSFgXe5esl+/rWQK98sPlHzayFJErpxUSTrs+finte45KXRF1Ly9wjRT2C5YtU0y0wVAQl3gEQ9IazofsCJDBuG6+3ZYO8PRft598TefDP3RMt7/d8TSx0Q9tk12sT3xJzqks8MmB+i51Xw7n+5N91cku+ATVQmtD8P8BG9S6n8UeYK+6bcS0uLAzYSEwIyJON+VoKdB5zZwB9wIH7S5YANOwRtN+L+XJUHHIifNDpAmAlBXQdA/KTUARtn6NMFADepdsDGjwNcW1DUKWGSdgd8/kBj/x2jyEuYaOkA+zMN/wcN2gQOrAj/7ytwQFngQJBINIADygIHIsL3Dzqzojxx/W/61MrErWRinCcYkhKGDKSfcCAiWnGg7Syl+yFOOOAPOBARkTjAe8i3LQeUJug/A8OBiGjFAT9w68KBdoADEdGKA+0dI1iZmHaAE4r1pqS8KRQ2wmuTosgvHIiIFh1w3uy5M0DzeYDjADdN60mH8B3gDaAURX7hQESEPw8QuQPcUKxozVZhFNMhRZFfOBARsc8D3Gv9GBxQL/ILByIi9nmAn6YVrFssciCVkV84EBGxzwNEcIdI30mazeaBVEZ+4UBERDIPREiKol5wICLafVaCnQec2SBW4EALwAFCSPqemYMDLQAHCCHpcyBFwIGI8JlmQomrhAkcIITAAeVLmMABoDtwAOgOHAC6AweA7sABF1OXTp48P3Ly/MjE27tPnh8J7TxYYlVM5FEhiQP/B9Vw1As8cbKtAAAAAElFTkSuQmCC" 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、总结

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

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

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

  1. C# winform或控制台Properties.Settings.Default的使用及存储位置

    C# winform或控制台Properties.Settings.Default的使用及存储位置 作者的程序 是MmPS.ClientForm.exe,使用Properties.Settings.D ...

  2. SpringBoot学习:获取yml和properties配置文件的内容

    项目下载地址:http://download.csdn.net/detail/aqsunkai/9805821 (一)yml配置文件: pom.xml加入依赖: <!-- 支持 @Configu ...

  3. SpringBoot学习:获取yml和properties配置文件的内容(转)

    项目下载地址:http://download.csdn.net/detail/aqsunkai/9805821 (一)yml配置文件: pom.xml加入依赖: <!-- 支持 @Configu ...

  4. SpringBoot学习:获取yml和properties配置文件的内容(转)

    项目下载地址:http://download.csdn.net/detail/aqsunkai/9805821 (一)yml配置文件: pom.xml加入依赖: <!-- 支持 @Configu ...

  5. MFC_VC++_时间获取与保存列表控件内容到文件操作方法

    MFC_VC++_时间获取与保存列表控件内容到excel文件操作方法 void CDataView::OnBnClickedBtnExporttoexcel() { CTime time = CTim ...

  6. java文件相关(文件追加内容、文件内容清空、文件内容读取)

    https://blog.csdn.net/xnz0616/article/details/39137177 1.文件内容追加 // 在已有的文件后面追加信息 public static void a ...

  7. mysql数据库文件的真实的物理存储位置

    在MySQL客户端输入如下命令:show global variables like "%datadir%"; 一定要在最后加上英文的分号.

  8. php 写内容到文件,把日志写到log文件

    php 写内容到文件,把日志写到log文件 <?php header("Content-type: text/html; charset=utf-8"); /******** ...

  9. 快速php日志,写内容到文件,把日志写到log文件

    php 写内容到文件,把日志写到log文件 //记录日志:要写入文件的文件名(可以是任意文件名),如果文件不存在,将会创建一个.log.txt位置在项目的根目录下. $file = 'log.txt' ...

随机推荐

  1. STL or 线段树 --- CSU 1555: Inversion Sequence

    Inversion Sequence Problem's Link:   http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1555 Mean: 给你一 ...

  2. Oracle Fusion Applications (11.1.8) Media Pack and Oracle Application Development Framework 11g (11.1.1.7.2) for Microsoft Windows x64 (64-bit)

    Oracle Fusion Applications (11.1.8) Media Pack for Microsoft Windows x64 (64-bit) 重新搜索   常见问题    提示  ...

  3. 解决PL/SQL查询结果乱码的问题

    首选查询oracle服务端的编码,然后将客户端NLS_LANG设置成和Oralce服务端一样的编码即可. 1.检查服务器编码: 执行SQL语法: select * from v$nls_paramet ...

  4. javascript: Jquery each loop with json array or object

    http://www.codeproject.com/Articles/779303/JSON-and-Microsoft-technologies http://www.codeproject.co ...

  5. Python轻量Web框架Flask使用

    http://blog.csdn.net/jacman/article/details/49098819 目录(?)[+] Flask安装 Python开发工具EclipsePyDev准备 Flask ...

  6. 泛函编程(20)-泛函库设计-Further Into Parallelism

    上两节我们建了一个并行运算组件库,实现了一些基本的并行运算功能.到现在这个阶段,编写并行运算函数已经可以和数学代数解题相近了:我们了解了问题需求,然后从类型匹配入手逐步产生题解.下面我们再多做几个练习 ...

  7. 205 Isomorphic Strings

    Given two strings s and t, determine if they are isomorphic. Two strings are isomorphic if the chara ...

  8. [moka同学笔记]Yii2.0 dropDownList的使用(二)

    方法一: <?php $psObjs = Poststatus::find()->all(); $allStatus = ArrayHelper::map($psObjs,'id','na ...

  9. JAVa中进制之间的转化方法

    public class Code { public static void main(String[] args) throws Exception{ // TODO Auto-generated ...

  10. 关于我的OI生涯(AFO){NOIP2016 后}

    这篇我就随意写啦~不用统一的“题解”形式.♪(^∀^●)ノ 也分好几次慢慢更吧~ 对于NOIP2016的总结,我本想善始善终back回,但是心情不足以支撑我,那就只能有始有终了......下面进入我的 ...