File类是用来构造文件或文件夹的类,在其构造函数中要求传入一个String类型的参数,用于指示文件所在的路径.以前一直使用绝对路径作为参数,其实这里也可以使用相对路径.使用绝对路径不用说,很容易就能定位到文件,那么使用了相对路径jvm如何定位文件的呢?
按照jdk Doc上的说法”绝对路径名是完整的路径名,不需要任何其他信息就可以定位自身表示的文件。相反,相对路径名必须使用来自其他路径名的信息进行解释。默认情况下,java.io 包中的类总是根据当前用户目录来分析相对路径名。此目录由系统属性 user.dir 指定,通常是 Java 虚拟机的调用目录.”
相对路径顾名思义,相对于某个路径,那么究竟相对于什么路径我们必须弄明白.按照上面jdk文档上讲的这个路径是”当前用户目录”也就是”java虚拟机的调用目录”.更明白的说这个路径其实是我们在哪里调用jvm的路径.举个例子:
假设有一java源文件Example.java在d盘根目录下,该文件不含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的.
分享到:
相关推荐
理解并掌握绝对路径和相对路径的转换对于任何编程项目都是至关重要的,特别是在处理文件系统操作、构建可移植的应用程序或者在多模块项目中协调资源路径时。通过学习和使用这些编程语言的内置工具,我们可以更加高效...
`java.io.File`类是Java标准库中的一个重要组成部分,它提供了对文件系统进行基本操作的能力。`File`类位于`java.io`包中,它是唯一代表磁盘文件本身的对象。通过`File`类,开发者可以轻松地创建、删除文件或目录,...
依赖: [me.moocar/java.io " 0.1.0 " ]用法是 JDK7 中引入的文件路径的抽象。 这个库提供了和 Paths 之间的兼容性。 下面的示例用法( require 'me.moocar.java.io)( require '[clojure.java.io :as jio])( import ...
8. 避免手动输入文件路径:如果在代码中需要引用文件路径,尽量避免手动输入,使用绝对路径或者程序可访问的相对路径。在SQL语句中应避免手动复制文件名,因为复制过程中可能会引入不可见的错误,而是应该使用数据库...
在Java中,`java.io.File`类是用于操作文件和目录的基本工具。它可以用来创建、删除、重命名文件,以及获取文件的属性信息,如大小、路径、最后修改时间等。 要读取一个TXT文档,我们需要使用Java的I/O流。这里主要...
本资源“java_io.rar”提供了关于如何在Java中进行文件操作的示例代码,包括读取、移动、删除和复制文件等常见任务。我们将深入探讨这些主题,以便更好地理解Java I/O API的使用。 首先,让我们从读取本地文件开始...
在描述中提到的`File`类是Java中的核心类,用于表示文件和目录路径名的抽象表示。你可以通过构造函数创建`File`对象,并进行文件的创建、删除、重命名等操作。 对于文件读取,Java通常使用`FileReader`和`...
- 应用场景:获取Java安装路径,可用于构建其他相对路径。 5. **`java.vm.specification.version`** - 描述:Java虚拟机规范版本。 - 示例代码:`System.getProperty("java.vm.specification.version")` - ...
- **根据java.io.File的文档**:可以通过`new java.io.File("文件名").getAbsolutePath()`获取文件的绝对路径。这种方法适用于在独立的Java类中获取文件的绝对路径。 总之,无论是开发Web应用还是编写独立的Java...
### Java IO流详解 #### 一、Java IO流概述 ...通过以上详细介绍,我们可以清晰地理解Java IO流的分类、特点及应用原则,同时掌握了`File`类的基本操作方法,这对于日常开发中处理文件和目录操作有着至关重要的作用。
### Log4j中配置日志文件相对路径方法详解 #### 概述 在软件开发过程中,日志记录是一项重要的功能,它有助于开发者调试程序、监控应用程序的运行状态以及追踪问题。`Log4j`作为一款优秀的日志管理工具,被广泛应用...
`java.nio.file.Paths`模块提供静态方法创建`Path`对象,代表文件系统中的路径。`Path`类则包含一系列方法,用于处理和操作路径。例如: ```java import java.nio.file.Path; import java.nio.file.Paths; public ...
在Java编程语言中,`java.io`包是一个非常重要的包,它包含了用于处理输入和输出操作的类和接口。这个包允许我们与外部资源(如文件、设备、网络等)进行交互,包括读取和写入数据。在本章中,我们将深入探讨`java....
**Java中区分绝对路径和相对路径的方法**: 1. **startsWith() 方法**: 使用 `String.startsWith()` 方法可以检查路径是否以斜杠(Unix/Linux)或盘符(Windows)开始。如果以这些字符开头,那么该路径很可能是...
Java IO 是Java编程语言中处理输入/输出流的重要部分,它是连接程序与外部世界的桥梁,允许数据在程序和外部资源之间流动。`commons-io-2.5.jar` 是Apache Commons项目的一部分,它提供了一系列增强和扩展了Java标准...
### JAVA获取项目路径 ...综上所述,在Java开发中,根据不同的应用场景和环境,我们可以灵活运用多种方法来获取所需的路径信息。这些方法不仅限于上述介绍,开发者还可以根据实际需求探索更多可能性。
约定,文件或目录的路径名由斜线(/)或反斜线()分割,此外,相对路径中可以采用'.'表示当前路径,'..'表示当前路径的父路径,即上一级目录。 Java 编程时,需要注意,''后面表示的是转义字符,因此需要...