JAVA使用相对路径读取配置文件[align=center][/align][size=medium][/size]
   在软件开发中经常遇到读取配置文件,以及文件定位问题。今天做个总结。
   (一)在java project中的配置文件读取
        java project项目的目录结构只有两个src和bin。src中存放的是源文件,bin中存放的是*.class的字节码文件。源文件进过编译就放进bin目录中,其中也包括没有编译的配置文件。我们需要的是对bin中的配置文件进行读取,因为项目最终打包成*.jar的就是bin目录下的文件。采用相对路劲进行读取的时候,需要确定此时相对的是哪一个基路径。其实这个基路径就是java.io默认定位到的当前用户目录("user.dir")(即工程根目录)。相对于这个路径在定位我们的配置文件。如下所示:
     File  file=new File("test/login.conf");
JVM就可以据"user.dir"与"test/login.conf" 得到完整的路径(即绝对路径)"D:\DecisionTree\test\login.conf",从而找到login.conf文件。
     通常我们使用  “类名”.class.getClassLoader().getResource("login.conf").openStream()来加载classes目录下的配置文件。得到文件的输入流。
     “类名”.class.getClassLoader().getResource("")定位到的绝对路径是WEB-INF\classes目录下。getResource(String filepath)。参数filepath是classes目录下的相对路径。
  (二)在java web project中的配置文件读取
          如果我们把配置文件定义在了classpath路径下。也就是WEB-INF\classes路径下,那么就可以像读取java project中的配置文件那样读取了。
          如果我们把配置文件定义在了WEB-INF的直接目录下。而不是classes目录下,那么是classpath之外的路径了,通过上面的那种方式是读取不到了。这是在应用环境下,要用到ServletContext,
   ServletActionContext.getServletContext().getResource("/")可以定位到当前web应用目录 如:jndi:/server/TEST/  TEST为当前的web应用系统名。getResource(String filepath) 注意其中filepath必须以“/”开始。
   ServletActionContext.getServletContext().getResourceAsStream("/WEB-INF/config/login.conf");就可以得到/WEB-INF/config/login.conf文件的输入流了。

JAVA使用相对路径读取配置文件的更多相关文章

  1. java通过文件路径读取该路径下的所有文件并将其放入list中

    java通过文件路径读取该路径下的所有文件并将其放入list中   java中可以通过递归的方式获取指定路径下的所有文件并将其放入List集合中.假设指定路径为path,目标集合为fileList,遍 ...

  2. java 使用相对路径读取文件

    java 使用相对路径读取文件 1.java project环境,使用java.io用相对路径读取文件的例子: *目录结构:  DecisionTree            |___src      ...

  3. Java工程中如何读取配置文件中参数信息

    Java中读取配置文件中参数: 方法一:通过JDK中Properties来实现对配置文件的读取. Properties主要用于读取Java的配置文件,不同的编程语言有自己所支持的配置文件,配置文件中很 ...

  4. java 4种方式读取配置文件 + 修改配置文件

    版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[-] 方式一采用ServletContext读取读取配置文件的realpath然后通过文件流读取出来 方式二采用ResourceB ...

  5. 【Properties文件】Java使用Properties来读取配置文件

    配置文件位置及内容 执行结果 程序代码 package Utils.ConfigFile;   import java.io.BufferedInputStream; import java.io.B ...

  6. Java动态脚本Groovy读取配置文件

    前言:请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i 核心涉及: @Value:作用是通过注解将常量.配置文件中的值.其他bean的属性值注入到变量中,作为变量的初始值. @Configur ...

  7. java中文件路径读取

    windows下 1)相对路径 public static final String TestDataExcelFilePath="src/omstestdata.xlsx"; 2 ...

  8. java web编程 servlet读取配置文件参数

    新建一个servlet. 然后在web.xml文件里面自动帮助你创建好了<servlet-name><servlet-class><servlet-mapping> ...

  9. Java J2EE读取配置文件

    package com; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.naming.InitialCon ...

随机推荐

  1. CHM Navigation to the webpage was canceled 解决办法

    在网上下载了一些chm文件,打开后看不到内容,显示:Navigation to the webpage was canceled 如图:             解决方法如下: 在文件上右键,选择“属 ...

  2. docker入门小结(三)

    本次笔记主要记录教程中的几个实战案例的实际情况 1,使用supervisor管理进程 忘了截图了,就不写了.教程中写的比较清楚. 但是注意,如果刚刚学习了上一章的网络配置,需要将网络的forward打 ...

  3. 【音乐App】—— Vue-music 项目学习笔记:歌单及排行榜开发

    前言:以下内容均为学习慕课网高级实战课程的实践爬坑笔记. 项目github地址:https://github.com/66Web/ljq_vue_music,欢迎Star. 歌单及详情页 排行榜及详情 ...

  4. linux 下route命令

    参考:http://blog.sina.com.cn/s/blog_67146a750100zoyi.html 为了让设备能访问另一个子网,需要在设备里增加路由到子网络,下面是一些资料.基本操作如下: ...

  5. BEGINNING SHAREPOINT&#174; 2013 DEVELOPMENT 第9章节--client对象模型和REST APIs概览 client对象模型(CSOM)基础

    BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第9章节--client对象模型和REST APIs概览  client对象模型(CSOM)基础         在SP2 ...

  6. java调试工具jdb

    Finds and fixes bugs in Java platform programs. Synopsis jdb [options] [classname] [arguments] optio ...

  7. 数据存储之Archiver、Unarchiver、偏好设置

    数组的归档 对象的归档 NSData多个对象的归档 NSArray多个对象的归档 偏好设置的存储 1.NSString.NSDictionary.NSArray.NSData.NSNumber等类型的 ...

  8. [技术讨论]关于前几天公布的京东bug上的问题分析

    1.  起因 前两天我公布了一个京东微信端截取到的三张图.并简单阐述了这三张图中的bug发现过程: 有朋友的评价是图中这种,可实际上.他应该是没有看出来这个bug代表的内容有多少.今天心血来潮决定具体 ...

  9. hdu1316

    链接:pid=1316" target="_blank">点击打开链接 题意:问区间[a,b]中有多少斐波那契数 代码: #include <iostream ...

  10. GenericServlet 、Servlet和httpServler他们之间的关系

    1.GenericServlet类是所有Servlet类的祖先类. 2.HttpServlet类继承了GenericServlet类. 3.Servlet有两个非常重要的的对象,可以说是java we ...