`

IO,相对路径

    博客分类:
  • JAVA
阅读更多

http://www.blogjava.net/zhangchao/archive/2009/04/15/265644.html

 

File类是用来构造文件或文件夹的类,在其构造函数中要求传入一个String类型的参数,用于指示文件所在的路径.以前一直使用绝对路径作为参数,其实这里也可以使用相对路径.使用绝对路径不用说,很容易就能定位到文件,那么使用了相对路径jvm如何定位文件的呢?

按照jdk Doc上的说法绝对路径名是完整的路径名,不需要任何其他信息就可以定位自身表示的文件。相反,相对路径名必须使用来自其他路径名的信息进行解释。默认情况下,java.io 包中的类总是根据当前用户目录来分析相对路径名。此目录由系统属性 user.dir 指定,通常是 Java 虚拟机的调用目录.

相对路径顾名思义,相对于某个路径,那么究竟相对于什么路径我们必须弄明白.按照上面jdk文档上讲的这个路径是当前用户目录也就是java虚拟机的调用目录.更明白的说这个路径其实是我们在哪里调用jvm的路径.举个例子:

假设有一java源文件Example.javad盘根目录下,该文件不含package信息.我们进入命令行窗口,然后使用d:命令切换到d盘根目录下,然后用javac Example.java来编译此文件,编译无错后,会在d盘根目录下自动生成Example.class文件.我们在调用java Example来运行该程序.此时我们已经启动了一个jvm,这个jvm是在d盘根目录下被启动的,所以此jvm所加载的程序中File类的相对路径也就是相对这个路径的,d盘根目录:D:\.同时 当前用户目录也是D:\.System.getProperty(user.dir);系统变量user.dir存放的也是这个值.

我们可以多做几次试验,Example.class移动到不同路径下,同时在那些路径下,执行java Example命令启动jvm,我们会发现这个当前用户目录是不断变化的,它的路径始终和我们在哪启动jvm的路径是一致的.

搞清了这些,我们可以使用相对路径来创建文件,例如:

File file = new File(a.txt);

File.createNewFile();

假设jvm是在D:\下启动的,那么a.txt就会生成在D:\a.txt;

此外,这个参数还可以使用一些常用的路径表示方法,例如..\代表当前目录,这个目录也就是jvm启动路径.所以如下代码能得到当前目录完整路径:

File f = new File(“.”);

String absolutePath = f.getAbsolutePath();

System.out.println(absolutePath);//D:\

最后要说说在eclipse中的情况:

Eclipse中启动jvm都是在项目根路径上启动的.比如有个项目名为blog,其完整路径为:D:\work\IDE\workspace\blog.那么这个路径就是jvm的启动路径了.所以以上代码如果在eclipse里运行,则输出结果为” D:\work\IDE\workspace\blog.”

Tomcat中的情况.

如果在tomcat中运行web应用,此时,如果我们在某个类中使用如下代码:

File f = new File(“.”);

String absolutePath = f.getAbsolutePath();

System.out.println(absolutePath);

那么输出的将是tomcat下的bin目录.我的机器就是 D:\work\server\jakarta-tomcat-5.0.28\bin\.”,由此可以看出tomcat服务器是在bin目录下启动jvm.其实是在bin目录下的 catalina.bat”文件中启动jvm.

分享到:
评论

相关推荐

    相对路径转换工具.rar

    有两种主要类型的路径:绝对路径和相对路径。绝对路径是从根目录开始的完整路径,而相对路径是相对于当前工作目录的路径。本篇文章将深入探讨绝对路径与相对路径的概念、它们之间的转换以及如何在C++、Java和Python...

    WPF中Image控件Source属性的相对路径和绝对路径问题(经验总结)

    我们可以使用 `System.IO.Path.GetFullPath()` 方法来获取相对于当前运行的可执行程序所在目录的给定的相对路径对应的绝对路径。 实践示例 例如,要显示在程序目录下的 Images/test/1.jpg 图片包含在项目中,可以...

    绝对路径和相对路径 文件目录IO常见操作汇总

    ### 绝对路径与相对路径概念解析及其在C#中的应用 #### 一、路径基础知识概览 在探讨路径操作之前,我们首先需要理解绝对路径和相对路径的基本概念。 **绝对路径**指的是从根目录开始直到文件所在位置的完整路径...

    关于XML相对路径问题

    在处理XML文件时,特别是在涉及到文件路径时,了解如何使用相对路径至关重要。相对路径允许我们根据当前目录定位其他文件,而不是每次都提供完整的绝对路径。 1. **根目录**:在XML中,根目录的相对路径通常表示为`...

    绝对路径和相对路径

    ### 绝对路径和相对路径详解 #### 一、基本概念理解 在计算机科学领域,路径是用来标识文件或目录在文件系统中的位置的一种方法。路径可以分为两种类型:绝对路径和相对路径。 - **绝对路径**:指的是从根目录...

    连接ACCESS绝对路径相对路径.txt

    根据提供的文件信息,本文将详细解释如何在C#中连接Access数据库,并且会重点讨论绝对路径与相对路径的使用方式。 ### 连接ACCESS绝对路径与相对路径 #### 使用C#连接Access数据库 在C#中连接Access数据库,通常...

    C#操作文件系统绝对路径和相对路径

    C#根据当前进程的启动路径,获得多个参数拼接...以及根据基准路径和参数获得相对路径。路径操作只用.NET中的System.IO和System.Text命名空间,相比其它的实现方式(比如采用System.Web命名空间)实用性更强,依赖更少。

    c#中输入相对路径方法详解

    本文将详细介绍如何在C#中输入和处理相对路径,这对于开发基于文件系统的应用尤为重要。 ### 一、理解相对路径 在讨论如何在C#中输入相对路径之前,我们首先需要了解什么是相对路径。相对路径是指相对于当前目录或...

    log4j中配置日志文件相对路径方法(PDF)

    ### Log4j中配置日志文件相对路径方法详解 #### 概述 在软件开发过程中,日志记录是一项重要的功能,它有助于开发者调试程序、监控应用程序的运行状态以及追踪问题。`Log4j`作为一款优秀的日志管理工具,被广泛应用...

    c#获取相对路径的方法详解

    C#获取相对路径的方法详解 C#获取相对路径是指在程序中获取当前目录、可执行文件路径、应用程序域基目录等相对路径的方法。在实际开发中,获取相对路径是非常重要的,因为它可以帮助我们定位文件、配置文件、日志...

    C#获取相对路径方法

    在C#编程中,获取相对路径是经常遇到的需求之一,特别是在处理文件系统操作时尤为重要。本文将详细介绍八种获取相对路径的方法,并对每种方法进行深入解析,以便开发者能够根据不同的应用场景选择最适合的方式。 ##...

    获取项目的相对路径和绝对路径

    本文将围绕“获取项目的相对路径和绝对路径”这一主题进行深入探讨,帮助读者理解不同场景下如何正确地获取路径。 ### 一、引言 在Java Web应用中,路径主要分为两种:相对路径与绝对路径。相对路径是指相对于当前...

    C#路径文件目录IO常见操作汇总.

    - **注意事项**:当使用相对路径时,建议将工作目录设置为各文件间的共同起点,以防止因路径错误而导致的安全问题。 综上所述,本文档详细介绍了C#中路径、文件和目录的基本操作技巧,旨在帮助初学者理解和掌握常见...

    C#文件的读取与写入操作(注释详尽,相对路径,直接运行,测试成功!)

    如果需要使用相对路径,可以利用`AppDomain.CurrentDomain.BaseDirectory`获取到这个目录,然后拼接上相对路径: ```csharp string filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "myFile.txt...

    Java区分路径和相对路径

    在Java编程中,路径和相对路径是两个非常重要的概念,特别是在处理文件系统操作时。路径是用来定位文件或者目录的字符串,而相对路径则是相对于当前工作目录的路径表示方式。 1. **路径(Absolute Path)** 路径...

    java区分绝对路径和相对路径的方法.docx

    有两种主要的路径类型:绝对路径和相对路径,它们在程序中有着不同的用途和处理方式。这篇文章将详细讲解如何在Java中区分这两种路径以及如何使用它们。 **绝对路径**: 绝对路径是从根目录开始的完整路径,它指明...

    Java中路径和相对路径的总结

     约定,文件或目录的路径名由斜线(/)或反斜线()分割,此外,相对路径中可以采用'.'表示当前路径,'..'表示当前路径的父路径,即上一级目录。  Java  编程时,需要注意,''后面表示的是转义字符,因此需要...

    C#路径文件目录IO常见操作汇总

    为确保安全性,推荐将工作目录设为所有文件操作的起点,避免因相对路径导致的潜在安全问题。 9. **Path类与路径处理** `System.IO.Path`类提供了一系列静态方法和属性,如上述所提及的,用于处理跨平台的路径操作...

Global site tag (gtag.js) - Google Analytics