`
AsWater
  • 浏览: 24769 次
  • 性别: 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-7-openjdk-amd64.tar.gz

    这个版本对于在Linux操作系统上编译Android 5.1源码特别有用,因为Android 5.1的开发环境通常依赖于Java 7的SDK或OpenJDK。 首先,让我们深入理解Java OpenJDK。OpenJDK是一个开放源代码项目,由甲骨文公司(Oracle)...

    Java虚拟机规范(Java SE 7)

    10. 模块系统:虽然Java SE 7本身并未完全实现模块化,但它是向Java 9模块系统迈出的第一步,引入了打包工具JAR的manifest文件中的`Module-Path`和`Export-Package`等概念。 了解这些Java SE 7中的JVM相关知识点...

    jdk-1.7-java-7-openjdk-amd64.zip

    4. **文件API增强**:引入了`java.nio.file`包,提供了更强大、更易用的文件操作接口,支持Path、Files和Paths类等。 5. **try-with-resources**:一种新的资源管理方式,自动关闭在try语句块中打开的资源,如输入/...

    ibm-java-ppc64-sdk-7.0-10.50

    - **API兼容性**:遵循Java SE 7标准,保证了与标准Java应用程序的兼容性。 综上所述,IBM Java PPC64 SDK 7.0-10.50是AIX平台上开发和运行Java应用的重要工具,它的安装和使用对于在AIX环境中构建和部署Java应用...

    java1.7-openjdk-amd64.zip

    OpenJDK(Open Java Development Kit)是 Java 平台标准版(Java SE)的一个开源实现,由 Oracle 公司和社区共同维护。在本文中,我们将详细介绍如何在 Linux 系统上安装 OpenJDK 1.7。 首先,确保你的系统是最新的...

    Java SE 7 Documentation

    9. **文件系统API增强**:Java 7提供了新的`java.nio.file`包,包含`Path`、`Files`和`FileSystem`接口,提供了对文件系统的强大操作和支持。 10. **改进的并发工具**:Java 7中并发包`java.util.concurrent`增加了...

    Java虚拟机规范(Java SE 7 中文版

    7. 文件系统API增强:Java 7引入了新的`java.nio.file`包,提供了一组与平台无关的文件系统操作,如Path接口、Files类和Files API,增强了文件操作的能力。 8. NIO.2:Java SE 7扩展了非阻塞I/O(New I/O)框架,...

    OCA Java SE7 Programmer I认证学习指南(Exam 1Z0-803).rar

    《OCA Java SE7 Programmer I认证学习指南(Exam 1Z0-803)》是一本专门为准备Oracle Certified Associate(OCA)Java SE 7 Programmer I考试的考生设计的教材。该认证是Java开发人员入门级别的资格证书,旨在验证候选...

    linux下的JDK(java-1.7.0-openjdk-amd64和jdk-7u79-linux-x64)

    1. 解压文件:使用`tar`命令解压对应的tarball文件,如`tar -xvf jdk-7u79-linux-x64.tar.gz`。 2. 移动到适当目录:通常将JDK安装到`/usr/lib/jvm`或`/opt`目录下,例如`sudo mv jdk1.7.0_79 /usr/lib/jvm/`。 3. ...

    java-jdk1.8-jdk-8u181-linux-x64.zip

    1. 首先,解压下载的zip文件。在终端中,你可以使用`unzip`命令来完成: ``` unzip java-jdk1.8-jdk-8u181-linux-x64.zip ``` 2. 解压后,你会看到一个名为`jdk-8u181-linux-x64.tar.gz`的文件。这是一个tar归档...

    Java电子教案(PPT)-第1章-Java简介(ppt文档).ppt

    1. **Java的特点**: - **简单性**:Java设计时借鉴了C++,但去除了指针等复杂的特性,使编程更加简单。 - **面向对象**:Java是一种纯面向对象的语言,所有的程序都由类组成,支持封装、继承和多态等面向对象特性...

    Java SE Development Kit 8

    Java SE Development Kit 8,简称JDK 8,是Oracle公司发布的Java开发工具包,用于构建和运行Java应用程序。它是Java Standard Edition(SE)的一部分,适用于桌面应用和服务器环境。JDK 8是Java发展历程中的一个重要...

    Java SE 14 Linux安装包

    1. 下载:由于从Oracle官网下载Java SE 14可能需要注册和登录,用户可以访问Oracle官方网站,找到Java SE页面,选择适合Linux系统的下载选项,通常会提供.tar.gz格式的文件,这就是我们的"jdk-14-linux"。...

    JAVA SE基础题

    ### JAVA SE基础题知识点解析 #### 1. JDK与JRE - **JDK**: Java Development Kit,即Java开发工具包。它包含了编译、调试和运行Java应用程序所需的工具和文档,是Java开发者进行Java应用开发的基础。 - **JRE**: ...

    jdk-7u17-windows-x64.rar

    这个版本的JDK是Java 7(也称为Java SE 7,即Java Standard Edition 7)的一个更新,它包含了编译器、调试器、性能优化工具以及Java运行时环境(JRE)等组件。 **Java 7的主要特性与改进** 1. **多语言支持**:...

    [零基础学JAVA]Java SE基础部分-01 Java发展及JDK配置.doc

    PATH变量用于指示操作系统在何处找到Java执行文件,如java.exe和javac.exe。CLASSPATH变量则告诉Java虚拟机(JVM)在哪里寻找类文件。正确配置这两个路径对于运行和编译Java程序至关重要。 【Java 程序基本组成】 ...

    OCA-Java-Certified-Associate-Java-SE-8-Programmer-Certification-Exam-1Z0-808指南:OCA Java认证的Java SE 8程序员考试1Z0-808认证指南,由Packt发行

    《OCA-Java-Certified-Associate-Java-SE-8-Programmer-Certification-Exam-1Z0-808指南》是为准备Java SE 8程序员认证考试1Z0-808的考生提供的一份详尽的学习资料。这本书由Packt出版社出版,旨在帮助读者全面掌握...

    Windows Java SE Development Kit 11.0.15.1 x64 Installer

    在Java SE Development Kit 11.0.15.1版本中,我们看到的是一个针对64位操作系统的安装程序,这对于我们理解Java开发环境的构建至关重要。 首先,Java SE,全称为Java Standard Edition,是Java平台的一个主要分支...

    jdk1.7官网 jdk-7u80-linux-x64.tar.gz.zip

    7. **NIO.2**:添加了新的文件系统API,包括`Path`、`Files`和`FileChannel`等类,提供了异步I/O操作和更好的路径处理能力。 在安装和配置JDK 1.7时,你需要解压"jdk-7u80-linux-x64.tar.gz"到一个适当的目录,例如...

    Java SE (jdk1.8下载 64位).rar

    Java SE(标准版)是Java开发工具包的一个版本,主要用于桌面应用和服务器端应用程序的开发。JDK(Java Development Kit)是Java编程语言的核心组成部分,它包含了一个Java编译器、Java运行时环境(JRE)、调试工具...

Global site tag (gtag.js) - Google Analytics