`

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

分享到:
评论

相关推荐

    2011.09.27——— android 视频缩略图之MediaMetadataRetriever

    在Android开发中,获取视频缩略图是一项常见的需求,尤其在设计媒体库或者涉及多媒体展示的应用中。2011年9月27日的这篇博客深入探讨了如何利用`MediaMetadataRetriever`类来实现这一功能。`MediaMetadataRetriever`...

    Java第三十五——三十六讲总结-输入输出流.doc

    `File`类提供了一种文件和目录路径名的抽象表示形式,它代表了文件系统中的一个文件或目录。 - **构造函数**: - `File(String pathname)`:通过路径名字符串创建`File`对象。 - `File(File parent, String child...

    java 获取properties的几种方式(csdn)————程序.pdf

    在Java开发中,管理应用程序的配置信息通常是一个重要的任务,而Properties文件则是一个常见的存储配置信息的方式。在Spring框架中,有多种方法可以方便地读取和使用这些Properties文件中的内容。以下是一些主要的...

    jxl.jar——JavaExcel library.zip

    JavaExcel库,通常以jxl.jar的形式出现,是Java开发者用于读取和写入Microsoft Excel文件的一个强大工具。这个库提供了方便的API,使得在Java应用程序中操作Excel电子表格变得非常简单。它不仅支持基本的读写功能,...

    用JAVA如何操作文件.doc

    在Java中,为了方便地处理文件及文件夹,`java.io`包中提供了一个非常重要的类——`File`类。这个类封装了与文件和目录相关的操作,使得开发人员能够轻松地进行文件管理。 ##### 1. 创建File对象 `File`类的对象...

    java程序——遍历目录文件

    在Java编程中,遍历目录文件是一项常见的任务,特别是在处理文件系统操作时。这个程序的主要目的是访问指定目录下的所有文件,记录每个文件的基本信息,如文件路径、最后修改时间以及文件大小,然后将这些信息写入到...

    使用java代码获取yml文件中指定的内容(csdn)————程序.pdf

    在Java开发中,YAML(YAML Ain't Markup Language)是一种流行的数据序列化格式,常用于配置文件。当我们需要在程序中动态读取或操作这些配置时,可以使用第三方库如Snake YAML来实现。本文将详细讲解如何使用Java...

    Pro Java 7 NIO.2.pdf

    除了基本的路径操作外,NIO.2还引入了一个新的概念——文件属性,这些属性可以通过`Path`类获取。例如,可以获取文件的最后修改时间: ```java BasicFileAttributes attrs = Files.readAttributes(path, ...

    java元数据——CLass类

    Java元数据——Class类 Java中的元数据Class类是一个基础的概念,它代理了这个类的类型信息、方法签名、属性等信息。每个类都有一个Class对象,它用来创建这个类的所有对象。每个对象的创建都依赖于Class对象的创建...

    第02章.ppt————电子版_ppt版

    在获取Java开发环境时,必须下载并安装JDK,而非仅仅安装JRE(Java Runtime Environment)。JRE是运行Java应用程序的平台,而JDK包含了开发所需的所有工具,包括JRE。 JDK的安装目录包含多个关键部分: 1. **bin**...

    JAVA核心知识点整理——java自学资料.rar

    这份"JAVA核心知识点整理——java自学资料.rar"包含了一份详细的Java学习资源,旨在帮助已经具备一定Java基础知识的开发者进一步提升技能,深入理解Java的底层机制。以下是这份资料可能涵盖的一些核心知识点和学习...

    mysql-connector-java-5.1.32.tar.gz

    JDBC驱动程序分为四种类型:Type 1(纯Java驱动),Type 2(混合驱动),Type 3(网络协议驱动)和Type 4(纯Java的Socket驱动)。MySQL Connector/J是Type 4驱动,它完全由Java编写,无需依赖操作系统特定的库,...

    java——jdbc学习总结

    JDBC 提供了一种统一的接口,使得开发者无需关心具体的数据库类型,就能够编写数据库访问代码,大大提高了代码的可移植性。以下是关于JDBC的一些核心知识点: 1. **JDBC的定义**: JDBC 是由Sun Microsystems(现...

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

    高德地图路径规划API是高德开放平台提供的一种服务,它能够根据起点和终点的坐标,计算出最佳的行驶路线、距离和预计的行车时间。API支持多种出行方式,包括驾车、步行、骑行等,同时还可以处理多点路径规划,满足...

    试题3.doc————电子版_doc版

    - UDDI(Universal Description, Discovery, and Integration):一种目录服务,它允许企业在Internet上注册和查找Web服务。 - WSDL(Web Services Description Language):XML格式的规范,用于描述Web服务及其接口...

    Java版查找并打印有向图中的所有环路径

    在标题中提到的"Java版查找并打印有向图中的所有环路径",这个问题涉及到图论中的一个经典问题——寻找环路。在实际应用中,如线程死锁识别,有向图的环路检测具有重要价值,因为线程间的资源依赖关系可以被抽象为有...

    【Java毕业设计】毕业设计——基于Java的漏洞扫描系统.zip

    在IT行业中,Java是一种广泛应用的编程语言,尤其在企业级应用开发中占有重要地位。基于Java的漏洞扫描系统是网络安全领域的一个重要课题,旨在帮助企业和组织发现并修复其信息系统中的安全漏洞。这个毕业设计项目...

    Java学习路径-工具篇.txt

    ### Java学习路径——工具篇 #### 一、Java开发工具包(JDK) 在开始Java的学习之旅之前,首先需要了解并安装Java开发工具包(JDK)。JDK是Java语言的核心组件,提供了Java语言运行环境所需的类库以及Java开发工具。 ...

    安卓Android源码——文件浏览返回路径.rar

    这份"安卓Android源码——文件浏览返回路径.rar"的压缩包显然包含了关于如何在Android平台上实现这一功能的源代码示例。下面,我们将深入探讨这个主题,并结合可能包含的源码文件来分析相关知识点。 首先,让我们来...

    Java学习总结.pdf

    下载后,将驱动jar文件放置在一个可被Java类路径访问的地方,比如`/usr/share/java/`。 要在Java程序中使用JDBC驱动连接MySQL,你需要导入必要的库,并编写连接代码。以下是一个简单的示例: ```java import java....

Global site tag (gtag.js) - Google Analytics