`

Java目录总结(六.路径的获取一——四种获取方式)

    博客分类:
  • Java
阅读更多

方法(一)、通过某个对象的getClass()方法取得Class,其中包含了类的许多信息。

在其中找取得URL之类的方法,以便取得URL,然后调用URL的getpath()方法,取得字符串并稍作处理就得到该类的Class文件的绝对路径,在此基础上就可以方便的使用相对路径。

Object.getClass().getResource("/").getPath();

 

方法(二)  通过类加载器获取路径信息

public abstract class  ClassLoader  extends Object类加载器是负责加载类的对象。ClassLoader 类是一个抽象类。如果给定类的二进制名称,那么类加载器会试图查找或生成构成类定义的数据。一般策略是将名称转换为某个文件名,然后从文件系统读取该名称 的“类文件”。

(1)  利用Thread类中的类加载器

Thread.currentThread().getContextClassLoader()

(2)  利用Class类获取类加载器

ClassName.class(或者 对象.getClass()).getClassLoader()

API中ClassLoader的相关方法

1、 public URL getResource(String  name)查找具有给定名称的资源。资源是可以通过类代码以与代码基无关的方式访问的一些数据(图像、声音、文本等)。资源名称是以 '/' 分隔的标识资源的路径名称。 此方法首先搜索资源的父类加载器;如果父类加载器为 null,则搜索的路径就是虚拟机的内置类加载器的路径。如果搜索失败,则此方法将调用 findResource(String) 来查找资源。

2、public static URL getSystemResource(String  name)从用来加载类的搜索路径中查找具有指定名称的资源。此方法通过系统类加载器来查找资源。

 

方法(三)利用文件来获取路径

File ff=new File("");

API中File类相关的方法:

java.io.File    文件和目录路径名的抽象表示形式。

1、public String getAbsolutePath()    返回此抽象路径名的绝对路径名字符串

2、public String getCanonicalPath() throws IOException

   返回此抽象路径名的规范路径名字符串。

3、public String getPath()

    将此抽象路径名转换为一个路径名字符串。所得字符串使用默认名称分隔符分隔名称序列中的名称。

4、 public boolean isAbsolute()测试此抽象路径名是否为绝对路径名。绝对路径名的定义与系统有关。在 UNIX 系统上,如果路径名的前缀是 "/",那么该路径名是绝对路径名。在 Microsoft Windows 系统上,如果路径名的前缀是后跟 "\\" 的盘符,或者是 "\\\\",那么该路径名是绝对路径名。

 

方法(四)利用System类提供信息

java.lang.System 包  public final class System extends Object 类  System 类包含一些有用的类字段和方法。它不能被实例化。在 System 类提供的设施中,有标准输入、标准输出和错误输出流;对外部定义的属性和环境变量的访问;加载文件和库的方法;还有快速复制数组的一部分的实用方法。方 法:public static String getProperty(String key)

获取指定键指示的系 统属性。首先,如果有安全管理器,则用该键作为其参数来调用 checkPropertyAccess 方法。结果可能导致 SecurityException。 如果没有当前系统属性的集合,则首先用与 getProperties 方法相同的方式创建并初始化系统属性的集合。 参数: key - 系统属性的名称。返回: 系统属性的字符串值,如果没有带有此键的属性,则返回 null。

 

获取当前工作目录为:System.getProperty("user.dir")

 

例子:

 

       // 方法一,利用Class的getResource方法类获取信息(实际上该方法委托ClassLoader类实现)      

       url= absp.getClass().getResource("/AbsPath.class");

       path = url.getPath();

       System.out.println("方法一:\nURL is : " + url);

       System.out.println("get Path is : " + path);

       System.out.println("Real Path is : " + path.substring(1)+"\n");

 

      

       // 方法二,利用ClassLoader类获取信息

       ClassLoader loader=Thread.currentThread().getContextClassLoader();

       //或者

       //loader = AbsPath.class.getClassLoader();

       url=loader.getResource("");

       path=url.getPath();

       System.out.println("方法二:\nURL is : " + url);

       System.out.println("get Path is : " + path);

       System.out.println("Real Path is : " + path.substring(1));

      

       System.out.println(ClassLoader.getSystemResource("")+"\n");

 

       // 方法三,利用文件来处理

       File ff=new File("");

       System.out.println("方法三:\n"+ff.getAbsolutePath());

       System.out.println(ff.getCanonicalPath());

       System.out.println(ff.isAbsolute()+ff.getPath()+"\n");

      

       //方法四,利用System类相关信息

       System.out.println("方法四:\n"+System.getProperty("user.home"));//用户主目录

       System.out.println(System.getProperty("user.dir"));//用户的当前工作目录        

       System.out.println(System.getProperty("java.class.path"));//Java类路径

       System.out.println(System.getProperty("os.name"));//操作系统名称

       System.out.println(System.getProperty("os.version"));//操作系统版本

 

结果:

方法一:

URL is : file:/D:/Java/EclipseWorkSpace/MyJavaDocs/AbsPath.class

get Path is : /D:/Java/EclipseWorkSpace/MyJavaDocs/AbsPath.class

Real Path is : D:/Java/EclipseWorkSpace/MyJavaDocs/AbsPath.class

 

方法二:

URL is : file:/D:/Java/EclipseWorkSpace/MyJavaDocs/

get Path is : /D:/Java/EclipseWorkSpace/MyJavaDocs/

Real Path is : D:/Java/EclipseWorkSpace/MyJavaDocs/

file:/D:/Java/EclipseWorkSpace/MyJavaDocs/

 

方法三:

D:\Java\EclipseWorkSpace\MyJavaDocs

D:\Java\EclipseWorkSpace\MyJavaDocs

false

 

方法四:

d:\我的文档

D:\Java\EclipseWorkSpace\MyJavaDocs

D:\Java\EclipseWorkSpace\MyJavaDocs

分享到:
评论

相关推荐

    Eclipse权威开发指南2.pdf

    1.4 获取与安装Eclipse.. 11 1.5 本章小结...... 11 1.6 参考文献...... 12 第2章 Eclipse入门 13 2.1 第一步...... 14 2.1.1 提示没有任何JRE可用的对话框..... 14 2.1.2 创建您的第一个项目..... 15 2.1.3 ...

    Eclipse权威开发指南3.pdf

    1.4 获取与安装Eclipse.. 11 1.5 本章小结...... 11 1.6 参考文献...... 12 第2章 Eclipse入门 13 2.1 第一步...... 14 2.1.1 提示没有任何JRE可用的对话框..... 14 2.1.2 创建您的第一个项目..... ...

    Eclipse权威开发指南1.pdf

    1.4 获取与安装Eclipse.. 11 1.5 本章小结...... 11 1.6 参考文献...... 12 第2章 Eclipse入门 13 2.1 第一步...... 14 2.1.1 提示没有任何JRE可用的对话框..... 14 2.1.2 创建您的第一个项目..... ...

    java数据结构课程设计——简易GPS导航(最优路径)源码+文档

    主要实现查找任意两地点间最短路径并获得其长度,添加地点,删除地点,添加路线,删除路线操作 该系统带有模拟地图的加权无向图,直观的表现各地点间的关系及所做操作的响应结果 可通过鼠标操作或文本输入的形式...

    Java开发工具类

    - QrcodeUtils.java\防止SQL注入和XSS攻击Filter\获取文件绝对路径最后的文件夹名称\加密工具类 - CryptoUtils.java\日期工具类 - DateUtil.java\图片处理工具类 - ImageUtils.java\文件相关操作工具类——FileUtils...

    高德地图路径规划api,批量获取坐标点间的距离,驾车时间等

    高德地图路径规划api,批量获取坐标点间的距离,驾车时间等

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

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...

    JNI技术手册 c/c++调用java

    II. java c/cpp互相调用实例(姊妹篇之一)——java调用c/cpp 4 一 先制作一个系统中有的DLL文件(cpp给出的sdk接口) 4 二 JNI 7 1、 编写java文件 7 2、 生成.h头文件 8 3、 用c/cpp实现这个头文件 9 三 测试 10 ...

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

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...

    Java IO学习总结

    相对路径和绝对路径六.File的创建方法七.File类的删除方法八.File类的判断方法九.File的遍历方法IO一.分类二.字节流字节输出流字节输入流 File 一.概念 **java.io**  将字符串形式的路径,封装成File类,File类提供...

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

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...

    生成可读取配置文件的独立运行jar程序IDEA模版工程

    ————————————————————————————————— 原文链接:https://blog.csdn.net/xuanxiaochuan/article/details/137001184 根据文章创建的模版工程文件,下载后可直接编辑main方法,根据...

    java源码包4

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历...

    java源码包3

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历...

    java源码包2

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历...

    Java项目开发与毕业设计指导

    如果不能运行,将ch07文件夹下的swt.jar加入构建路径,然后在运行中的JVM参数中加入-Djava.library.path="dll所在目录的绝对路径"即可。 也可以在命令行下直接运行该程序,假设ch07文件夹放在D盘跟目录。则在cmd下...

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

    Java目录监视器源程序 9个目标文件 内容索引:JAVA源码,综合应用,目录监视 用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java...

    robotframework——变量文件.pdf

    robotframework——变量⽂件 变量⽂件 何为变量⽂件? 何为变量⽂件? 变量⽂件中包含了测试数据中的变量。虽然变量可以通过变量表格中创建, 或者通过命令⾏设置, 不过这些⽅法有所局限, ⽽变量⽂件可以动态地创建...

    jpivot学习总结.doc

    对于一个 Hierarchy 来说,有两种方式为其指定:一种是直接通过一个 Table 标签指定;一种是通过 Join 将若干张表连接起来指定。一旦采用 Join 的话,那么就要在 Hierarchy 里的 primaryKeyTable 属性指定主表。 ...

Global site tag (gtag.js) - Google Analytics