java file的相对路径_JAVA File的建立及相对路径绝对路径

File f = new File("D:/test/mytest.txt");//当执行这句话后在内存的栈空间存在一个f的应用,在堆空间里存在一个mytest.txt对象。注意java

这个对象只含有文件的属性(如大小,是否可读,修改时间等),不包含文件的内容,因此length=0。当咱们想执行对文件的操做的时候,这个时web

候抽象路径起做用了,好比咱们想执行f.createNewFile()命令时,虚拟机会将抽象路径转化为实际的物理路径,到这个转化后的物理路径(此时tomcat

是硬盘)下进行文件的建立。这时,若是在你的D盘没有test文件夹,那么很差意思啦,程序就会抛异常,若是有test文件夹,就能够建立一个服务器

mytest.txt文件了。能不能建立mytest.txt就在于这个文件上面有没有test文件夹,这也就是抽象路径在装怪了。

若是想让f引用在硬盘中把文件夹也建立出来怎么办?用f.getParentFile()求出mytest.txt上面的全部文件夹,而后在mkdirs()就搞定了。eclipse

-----------------------

-----------------------

File类是用来构造文件或文件夹的类,在其构造函数中要求传入一个String类型的参数,用于指示文件所在的路径.之前一直使用绝对路径做为参jvm

数,其实这里也可使用相对路径.使用绝对路径不用说,很容易就能定位到文件,那么使用了相对路径jvm如何定位文件的呢?函数

按照jdk Doc上的说法”绝对路径名是完整的路径名,不须要任何其余信息就能够定位自身表示的文件。相反,相对路径名必须使用来自其余路spa

径名的信息进行解释。默认状况下,java.io 包中的类老是根据当前用户目录来分析相对路径名。此目录由系统属性 user.dir 指定,一般是命令行

Java 虚拟机的调用目录.”orm

相对路径顾名思义,相对于某个路径,那么究竟相对于什么路径咱们必须弄明白.按照上面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的.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值