`
TimerBin
  • 浏览: 355621 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA 代码中常用文件路径获取方式

    博客分类:
  • JAVA
 
阅读更多

前言

 

   在java中经常会遇到读取各种不同路径下的文件内容信息,以下就是我在使用过程中所遇到的读取不同路径下文件的总结。

 

一、本地系统盘符下的绝对路径的文件

System.out.println(new File("D:/message.properties").getAbsolutePath());
System.out.println(new File("D:/message.properties").getCanonicalPath());

 

获得本地系统D盘下的message.properties文件内容,两种方法都可以读到配置文件内容,它们的区别在对绝对路径文件读取上是不体现的,它们的区别在于对系统盘符中的相对路径的读取上。其中getAbsolutePath()不会将路径中的“./”或者“../”进行解析,getCanonicalPath();会将路径中的“./”或者“../”进行解析成为相应路径。

详细请参考:http://www.blogjava.net/dreamstone/archive/2007/08/08/134968.html

 

二、本地系统盘符下的相对路径

System.out.println(new File("").getCanonicalPath());

 

//在java文件中运行此代码的话可以获得此java文件所在的项目所在磁盘中的路径信息(只到项目名称),路径只到项目名称就结束了。

例子:D:\Eclipse\src\HelloWord

System.out.println(new File("").getAbsolutePath());

 

//此时的getAbsolutePath()方法也可以获得到项目的所在磁盘中的路径信息与getCanonicalPath()方法返回的一致。

System.out.println(new File("../../").getCanonicalPath());

 

//在同一个文件下运行上面内容就表示此项目本地磁盘目录上后退两个目录结构地址

例子:D:\Eclipse 也就是这个地址

System.out.println(new File("../../").getAbsolutePath());

 

//此时getAbsolutePath获得路径就与getCanonicalPath完全不同了,因为它无法识别"./"和"../"信息

例子:D:\Eclipse\src\HelloWord\..\..但它并不报错,但如果去读取后退两个目录结构地址的文件内容时它就会报出错误信息

 

三、ClassPath下的相对路径

 System.out.println(HelloWord.class.getResource("").getFile());
 System.out.println(this.class.getResource("").getFile());

 

//获得HelloWord类所编译后class所存放的地址

例子:D:/Eclipse/src/HelloWord/WEB-INF/classes/com

 

System.out.println(HelloWord.class.getResource("../").getFile());
System.out.println(this.class.getResource("../").getFile());

 

//获得HelloWord类所编译后class所存放的地址的后退到上一级目录

例子:D:/Eclipse/src/HelloWord/WEB-INF/classes   注意这里只能到这一层不可以再次向上后退

 System.out.println(Thread.currentThread().getContextClassLoader().getResource(""));

 

//直接到当前项目的classPasth根目录下但他会在路径的前方加上file:标识

例子:file:/D:/Eclipse/src/HelloWord/WEB-INF/classes

 

System.out.println(Thread.currentThread().getContextClassLoader().getResource("../"));

 

//此用法是错误,无法在classes目录退后到上一级目录

 

注:在java的jar包中的类使用HelloWord.class.getResource(“").getFile()来对文件进行获取路径时会在项目上加上.jar

例子:file:/D:/HelloWord.jar!/com

注:在项目中引入的Jar包中可以使用ResourceBundle直接获得项目中定义的配置文件。这里不可以识别../和./标识符使用

ResourceBundle.getBundle("配置文件名称");

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    java源码包---java 源码 大量 实例

     WDSsoft的一款免费源代码 JCT 1.0,它是一个Java加密解密常用工具包。 Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书  Java局域网通信——飞鸽传书源代码,大家都知道VB...

    JAVA上百实例源码以及开源项目

     WDSsoft的一款免费源代码 JCT 1.0,它是一个Java加密解密常用工具包。 Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书  Java局域网通信——飞鸽传书源代码,大家都知道VB...

    JAVA上百实例源码以及开源项目源代码

     WDSsoft的一款免费源代码 JCT 1.0,它是一个Java加密解密常用工具包。 Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书  Java局域网通信——飞鸽传书源代码,大家都知道VB...

    java源码包2

     WDSsoft的一款免费源代码 JCT 1.0,它是一个Java加密解密常用工具包。 Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书  Java局域网通信——飞鸽传书源代码,大家都知道...

    Java 工具类 包含一些常用的方法

    2.获得资源文件夹路径(类似项目中src目录,需传入包名) 3.为指定类添加toString方法代码 4.为指定包名下的所有java文件添加toString方法代码 5.将文件转换为指定字符编码集的字符串 6.获取指定类的随机实例...

    JAVA_API1.6文档(中文)

    java.util.concurrent 在并发编程中很常用的实用工具类。 java.util.concurrent.atomic 类的小工具包,支持在单个变量上解除锁的线程安全编程。 java.util.concurrent.locks 为锁和等待条件提供一个框架的接口和类...

    java源码包4

     WDSsoft的一款免费源代码 JCT 1.0,它是一个Java加密解密常用工具包。 Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书  Java局域网通信——飞鸽传书源代码,大家都知道...

    java源码包3

     WDSsoft的一款免费源代码 JCT 1.0,它是一个Java加密解密常用工具包。 Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书  Java局域网通信——飞鸽传书源代码,大家都知道...

    一个常用的Java文件操作类FileUtil.java源码下载

    一个常用的Java文件操作类FileUtil.java源代码,类中的所有方法都是静态方法,不需要生成此类的实例,这些Java文件操作类主要有修改文件的最后访问时间、判断指定的文件是否存在、创建指定的目录、清空指定目录中的...

    java开源包8

    你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,无缝集成的IDE(语法着色,代码导航,重构等)的语法和操作代码完全分离。最大限度地减少时间和费用开发...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...

    java开源包10

    你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,无缝集成的IDE(语法着色,代码导航,重构等)的语法和操作代码完全分离。最大限度地减少时间和费用开发...

    Java 1.6 API 中文 New

    java.util.concurrent 在并发编程中很常用的实用工具类。 java.util.concurrent.atomic 类的小工具包,支持在单个变量上解除锁的线程安全编程。 java.util.concurrent.locks 为锁和等待条件提供一个框架的接口和类,...

    JavaAPI1.6中文chm文档 part1

    java.util.concurrent 在并发编程中很常用的实用工具类。 java.util.concurrent.atomic 类的小工具包,支持在单个变量上解除锁的线程安全编程。 java.util.concurrent.locks 为锁和等待条件提供一个框架的接口和类...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...

    java开源包11

    你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,无缝集成的IDE(语法着色,代码导航,重构等)的语法和操作代码完全分离。最大限度地减少时间和费用开发...

    java开源包6

    你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,无缝集成的IDE(语法着色,代码导航,重构等)的语法和操作代码完全分离。最大限度地减少时间和费用开发...

    java开源包9

    你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,无缝集成的IDE(语法着色,代码导航,重构等)的语法和操作代码完全分离。最大限度地减少时间和费用开发...

    java开源包4

    你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,无缝集成的IDE(语法着色,代码导航,重构等)的语法和操作代码完全分离。最大限度地减少时间和费用开发...

Global site tag (gtag.js) - Google Analytics