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的.

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

  1. java读取文件 路径_Java中的获取文件的物理绝对路径,和读取文件

    获取文件的绝对路径,读取该文件 一.文件目录打印图 下面的文件目录图,是项目中文件的位置信息:下面的例子是按照这个图来演示的. . |-- java | |-- ibard | | |-- demo1 ...

  2. java 获取ftp 文件路径_java在浏览器上获取FTP读文件路径

    展开全部 问一下,你是62616964757a686964616fe4b893e5b19e31333337623437想做ftp上传下载么? 首先你需要安装一个ftp服务端程序,启动起来,然后下载一个 ...

  3. java file类详解_Java File类详解及IO介绍及使用

    我是一个CPU:这个世界慢!死!了!,可以感受到CPU,内存和硬盘之间的速度比较. 文件的本质 OS(操作系统)的目的就是可以让上层程序可以通过一种统一的方式去拿到无论什么磁盘里的文件(即一段字节流) ...

  4. java中rename的用法_Java File中renameTo的介绍和使用说明

    看到项目中有个地方用的File的renameTo这个方法,本以为这个方法就是用来文件重命名的,但是项目中确用它来进行文件的移动.就是使用renameTo将一个文件从一个目录移动另一个目录下! 下面就简 ...

  5. java 获取ftp路径_Java Source 根据输入 ftp 地址 账号 密码 路径 读取提供路径下的文件...

    参考上面的: 引用jar包  ganymed-ssh2-build210.jar jar 包放在   $ORACLE_HOME/sqlj/lib  执行loadjava命令 加载jar包 路径下 执行 ...

  6. java web资源目录下_Java Web项目中的各种资源的路径写法

    如图,在项目中要跳转到如下的路径中(在项目下的target.html): public class PathDemo extends HttpServlet { public void doGet(H ...

  7. java file类复制文件路径_java进阶(34)--File类、目录复制

    一.File类的理解 1.File类不能完成文件的读与写. 2.FIle类代表:文件或目录的路径名的抽象表示形式. 二.FIle类常用方法: 1.创建一个FIle对象:File() File f1=n ...

  8. java中file路径_Java中的文件路径

    Java中的文件路径 今天一定在这里解决这个问题,通过路径读文件一般就3种方式,但他们完全不同: 1. File myFile=new File("myfile.txt"); 上面 ...

  9. java file源码_java File源码理解,探索File路径

    1.方法: new File(path); 我们知道根据输入的路径path的不同 ,File可以根据path的不同格式,来访问文件.那么,path的形式有几种呢? 根据源码 可以知道,输入的路径pat ...

最新文章

  1. LeetCode-二分查找-69. Sqrt(x)
  2. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(九)
  3. gcc 的visibility
  4. JavaSE——IO(下)(Properties类、序列化与反序列化)
  5. 华为内测基于Android 10.0的EMUI 10系统;2019年Q1真无线耳机市场份额,苹果占半壁江山……...
  6. 什么是目标检测?有哪些应用?终于有人讲明白了
  7. 因为我们一直强调选品的重要性
  8. gps天线拆解图片_威旺M20如何拆解中控导航及找出gps天线
  9. 目前能体验到的虚拟主播虚拟人脸形象有哪些?
  10. 3D变形:平移、旋转、缩放
  11. 我是这样手写Spring的,麻雀虽小五脏俱全
  12. 数组根据某个条件筛选出符合的数据,生成一个新的数组
  13. 配置Jinjia2模板引擎
  14. 7.7 Introduce Foreign Method 引入外部方法
  15. 算法很美 将整数的奇偶位互换
  16. OSChina 周四乱弹 ——老司机的幼年日常
  17. JAVA中Object转String
  18. html语言的title在哪,网页中title标题使用地方有哪些
  19. 搭建Win7调试ACPI的环境
  20. 电动车电池管理系统c语言实训,纯电动汽车电池管理系统(BMS)实训台,汽车电池教学设备...

热门文章

  1. 多任务实现-协程(python 版)
  2. 2020 年 Flink 最佳学习路线,学习的路上,你,并不孤单
  3. ASP.NET企业开发框架IsLine FrameWork系列之十四--框架配置信息大全(中)
  4. 培养宝贝惊人记忆力10妙招哦
  5. 漫步线性代数九——求Ax=0和Ax=b
  6. java中FileInputStream和OutputStream解析
  7. mysql5.6.4m7 linux安装_mysql-5.6.4-m7installinlinux
  8. css叠层_CSS 中重要的层叠概念
  9. Tesla P4测试
  10. leetcode - 300. 最长上升子序列