`
AsWater
  • 浏览: 24167 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Java SE 7文件操作(1)-Path类简介

阅读更多

摘自开发者的天空

1. Path 的概念
文件系统会把文件进行组织并存放在媒介上,通常是一个或多个硬盘上。目前使用的大多数的文件系统是以树形的方式来存储文件的。在树的顶端是一个(或多个) 根节点,在根节点之下是文件和目录,目录下又可以包含文件和目录。理论上可以这样一层层的一直嵌套下去(当然实际中是不可能的,例如Windows系统对 路径的长度有限制)。
下面的图中展示了一个包含一个根节点的目录树。(在Windows系统中支持多个根节点,例如C:\和D:\分别是一个根节点。)
io-dirStructure.JPG


Path能够唯一的标识文件系统中的某一个文件。例如上面图中的statusReport文件在Windows系统中就可以使用以下的Path来标识:
c:\home\sally\statusReport
在solaris系统中,其path为
/home/sally/statusReport.
Path中的分隔符在不同的文件系统中是不同的,例如在Windows系统中使用\,在Solaris系统中使用/。
Path又可以分为绝对路径和相对路径。绝对路径总是含有根节点和用来定位文件的完整的目录列表。例如/home/sally/statusReport 就是绝对路径。相对路径需要和另外的路径结合在一起才能够确定一个文件。例如加哦加哦哦joe/foo就是一个相对路径,如果没有其他的信息,程序就没有 办法定位这个文件。我们必须说这个是相对/home的相对路径,这样我们才能够找到它。
除了我们熟悉的目录和文件之外,有一些文件系统中还支持符号链接(symbolic link),也称为symlink或soft link。一个符号链接是一个特殊的文件,它实际上是另外一个链接的引用。在大多数情况下符号链接对应用程序是透明的,对符号链接的操作会自动的重定向到 链接所指向的目的地,除非操作是删除这个符号链接、重命名这个符号链接或修改符号链接的目的地。
在下面的图中,logFile对于用户来说就是一个常规的文件,但是实际上是一个符号链接,链接到dir/logs/HomeLogFile文件。 HomeLogFile是这个链接的目的地。
io-symlink.jpg

 

不恰当的使用符号链接会导致循环引用,例如目录A是一个符号链接,指向目录B,目录B下有一个子目录是符号链接,指向目录A的父目录。这样,当程序企图递 归的遍历整个目录树时,就会出问题。幸运的是,这个问题已经被发现了,并且不会导致程序的死循环。


2.Path类
Path类是JDK7新引入的一个类,该类是java.nio.file包的基石。
和类的名称所展示的一样,Path类就是文件系统中path概念的程序表现。Path对象包含了文件名和目录列表,这些信息可以用来创建path,并且用 来检验、定位和操作文件。
Path实例是和底层操作系统相关的。在Solaris系统中,Path使用Solaris的句法(/home/joe/foo);在Window操作系 统中,Path会使用Window的句法(C:\home\joe\foo)。因此Path不是操作系统无关的。你不能够比较一个来自Solaris文件 系统的Path和一个来自Windows文件系统的Path并期望它们相等,在目录结构和文件完全一样的时候也不行。
Path对应的文件或者目录可以不存在。我们可以以不同的方式创建Path实例并操作它:扩展路径、抽取路径的一部分、和其他的Path比较。我们也可以 检查Path对应的目录或文件是否存在、创建文件 或目录、打开或删除文件、修改许可权限等。
Path类是能够区分符号链接的。所有的Path的方法要么会检测是否是符号链接并执行不同的操作,或者提供了一个选择来使用户能够配置当遇到符号链接的 时候执行什么操作。
Path类提供了很多易于使用的特性,Path类的方法可以分成两类:


  • 路径操作—返回路径的一部分如根节点、名称、父目录的方法或者其他操作路径的方法。
  • 文件操作 —创建文件、打开文件、创建目录、删除文件、 拷贝文件等操作的方法。

在下一篇文章中,我们会具体介绍Path类的这些方法。

分享到:
评论
2 楼 AsWater 2010-03-30  
miaow 写道
抓个虫:是java.nio.file包

谢谢提醒,已经改正了。
1 楼 miaow 2010-03-30  
抓个虫:是java.nio.file包

相关推荐

    JAVA--达内培训笔记

    编译命令 javac xxxx.java 源文件的名字,源文件中的一个类会对应编译生成一个.class文件 运行命令 java xxxx 类的名字 --- 启动虚拟机 6、环境变量 JAVA_HOME = /opt/jdk1.5.06 JDK 安装路径 --- JDK = JRE ...

    jdk-7u80-nb-8_0_2-linux-x64

    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib 3.将系统默认的jdk修改过来 $ sudo update-alternatives --install /usr/bin/java ...

    Java JDK 7学习笔记(国内第一本Java 7,前期版本累计销量5万册)

     《Java JDK 7学习笔记》针对Java SE 7新功能全面改版,无论是章节架构或范例程序代码,都做了全面重新编写与翻新。  《Java JDK 7学习笔记》是作者多年来教学实践的经验总结,汇集了学员在教学过程中遇到的概念、...

    java jdk8 学习笔记

    Java编译语言将Java代码编译成.class文件(只有一种形式),而C/C++语言将代码编译成01码,不同的操作系统的01码指令不同,这造成了不能跨平台,而Java将这个任务交给JVM,不同操作系统上的JVM将.class文件编译成不同...

    新版Android开发教程.rar

    � Android 更像一款桌面环境为 Java 的 Linux 操作系统。有助于 Google 实现其 " 随时随地为每个人提供信 息 " 的企业战略。 HTC HTC HTC HTC Dream/G1 Dream/G1 Dream/G1 Dream/G1 具体配置 硬件 3.17 英寸 HVGA ...

    写给大忙人看的JAVA SE 8

    第1章 lambda表达式 0 1.1 为什么要使用lambda表达式 2 1.2 lambda表达式的语法 4 1.3 函数式接口 6 1.4 方法引用 8 1.5 构造器引用 10 1.6 变量作用域 10 1.7 默认方法 14 1.8 接口中的静态方法 17 练习 18 第2章...

    Java学习笔记7.0

    《Java JDK6学习笔记》是作者良葛格本人近几年来学习Java的心得笔记,结构按照作者的学习脉络依次展开,从什么是Java、如何配置Java开发环境、基本的Java语法到程序流程控制、管理类文件、异常处理、枚举类型、泛型...

    jdk1.6版本,描述中为jdk环境配置

    上传文件目录为:/home/ut/java/,cp当前目录下jdk-6u30-linux-i586.bin到/usr/lib/jdk/,chmod 777 jdk-6u30-linux-i586.bin jdk安装路径:/usr/lib/jdk/jdk1.6.0_30 配置环境变量: sudo vi /etc/environment ...

    jdk 1.8 linux

    export PATH=${JAVA_HOME}/bin:$PATH 3、执行profile文件 [root@localhost software]# source /etc/profile 这样可以使配置不用重启即可立即生效。 4、检查新安装的jdk [root@localhost software]# java -version...

    jdk1.6版本,同时描述中为配置

    上传文件目录为:/home/ut/java/,cp当前目录下jdk-6u30-linux-i586.bin到/usr/lib/jdk/,chmod 777 jdk-6u30-linux-i586.bin jdk安装路径:/usr/lib/jdk/jdk1.6.0_30 配置环境变量: sudo vi /etc/environment ...

    TestNG安装包

    Linux export PATH=$PATH:$JAVA_HOME/bin/ Mac not required 验证Java安装使用命令java-version如上所述。 第3步:下载TestNG的归档文件 下载最新版本的TestNG的jar文件,详细请点击访问 http://www.testng.org....

    浏览器插件

    1、 Java源程序文件的后缀是 *.java ,Java字节码文件的后缀名称是 *.class 。 2、 Java程序实现可移值性,依靠的是 JVM 。 3、 Java语言的三个分支是: JAVA SE 、 JAVA ME 、 JAVA EE 。 4、 Java程序由 类 组成,...

    jssecacerts

    Java\jar 1.8.0_141\lib\ext\里面缺少了一个安全凭证jssecacerts证书文件,通过运行下面类可以生成证书,将生成的证书放在Java\jar 1.8.0_141\lib\ext\这个目录下,重启编译器就可以解决。

    jdk-8u241-windows-x64.zip

    1. 安装:下载文件后解压、运行EXE文件,选择路径安装即可(包括jdk和jre两部分); 2. 环境变量配置(以win10系统为例):打开 控制面板->系统和安全->系统->高级系统设置->环境变量,在系统变量中: (1)新建变量...

    jdk-11.0.6_windows-x64_bin.zip

    1. 安装:下载文件后解压、运行EXE文件,选择路径安装即可; 2. 环境变量配置(以win10系统为例):打开 控制面板->系统和安全->系统->高级系统设置->环境变量,在系统变量中: (1)新建变量:变量名:JAVA_HOME ...

    jboss 安装教程

    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bi vim /etc/profile 添加 export JAVA_HOME=/opt/SDK/jdk/ export JRE_HOME=/opt/SDK/jdk/jre/ export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_...

    java源码嵌套for循环-pytm:用于威胁建模的Pythonic框架

    循环的java源码压缩 pytm:用于威胁建模的 Pythonic 框架 介绍 传统的威胁建模往往迟到,有时甚至根本没有。 此外,创建手动数据流和报告可能非常耗时。 pytm 的目标是将威胁建模向左转移,使威胁建模更加自动化和以...

    hadoop安装

    Java(TM) SE Runtime Environment (build 1.6.0_38-ea-b04) Java HotSpot(TM) Client VM (build 20.13-b02, mixed mode, sharing) 4.安装hadoop (3台都安) [root@a1 ~]# tar zxvf hadoop-0.20.2-cdh3u5.tar.gz -C ...

    RESTful 教程.pdf

    您可以从甲骨文的 Java 网站上的最新版本的 JDK : Java SE 下载 . 会找到安装说明在下载的文件中,请 按照说明安装 JDK 和配置设置。最后,设置 PATH 和 JAVA_HOME 环境变量指向包含 java 和 javac 的 目录,通常 ...

    jcolorize:用于为日志文件着色的命令行工具,尤其是Apache Tomcat和Wildfly AS的日志文件

    jcolorize 从FILE或stdin读取,为某些关键字着色并写入stdout。 专门设计用于着色Apache Tomcat和Wildfly AS的...PATH中: export PATH="$PATH:$HOME/opt/jcolorize/bin"要求Java SE 1.7或更高版本Maven(仅用于构建)

Global site tag (gtag.js) - Google Analytics