`
cucaracha
  • 浏览: 141509 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
A8f3fa2f-18ce-3862-897a-5d2209197c90
Java NIO.2
浏览量:87957
7a076ba7-8ec8-3241-aa3c-67bb2f7856a2
Java EE 7 简明教...
浏览量:36732
社区版块
存档分类
最新评论

[NIO.2] 第二篇 NIO.2 和 Path 类简介

阅读更多
想要初步了解 NIO.2 API,也就是通常所说的“JSR203: More New I/O APIs for the Java Platform”,最好的切入点就是新的抽象类 java.nio.file.Path 类。这个类是 NIO.2 的里程碑,所有应用程序中的 I/O 操作都和这个类密不可分。这个类几乎可以说是 NIO.2 中最常用的类。

Path 类简介

文件路径存在于文件系统中。文件系统可以通过 java.nio.file.FileSystems 这个 final 类来进行访问,从这个类中可以获取 java.nio.file.FileSystem 类的对象。FileSystems 类提供了下面两个很重要的方法,同时也提供了 newFileSystem() 方法,用来创建一个新的文件系统:

    getDefault():这个静态方法返回 JVM 默认的 FileSystem - 一般说来,也就是操作系统的默认文件系统。
    getFileSystem(URI uri):这个静态方法从一组文件系统提供者中返回一个与 URI 匹配的文件系统(FileSystem)。Path 类可以在任何文件系统(FileSystem)和任何存储空间(java.nio.file.FileStore; 这个类反应了底层的存储)上操作文件。默认情况下(最常用),Path 类引用默认文件系统(计算机的文件系统)的文件,但是 NIO.2 是完全模块化的—— FileSystem 的具体实现是在内存中的一组数据,因此在网络环境或在虚拟文件系统中,NIO.2 也完全适用。NIO.2 提供给我们在文件系统中操作文件、文件夹或链接的所有方法。

Path 类是 java.io.File 类的升级版,但是在 File 类中还保留了一些特殊的操作,因此 File 类并没有过时或不推荐使用。并且,从 Java 7 开始,两个类都可以使用,这意味着,开发者可以混合使用两个类来编写最好的 I/O 应用。 Java 7 提供了简单的 API 对这两个类进行相互转换。

想想你曾经编写过的类似下面的代码:

import java.io.File;
 …
 File file = new File("index.html");


从 Java 7 开始,不再需要这样写了,你可以转换为:

import java.nio.file.Path;
 import java.nio.file.Paths;
 …
 Path path = Paths.get("index.html");


仔细看看,Path 类相当于用编程的方式来反应文件系统中的路径。路径的字符串中包含了文件名,目录列表以及操作系统相关的分隔符(例如,在 Windows 中是反斜线“\”,在 Linux 中是正斜线“/”),这意味着 Path 类不是系统独立,而是依赖于系统路径字符串。由于 Path 类基于字符串创建,因此它引用的资源也有可能不存在。

文章来源:http://www.aptusource.org/2014/03/path-class/



分享到:
评论

相关推荐

    Pro Java 7 NIO.2.pdf

    这本书通过一系列章节详细讲解了如何使用NIO.2中的各种类和接口来执行复杂的文件操作。 ### 1. Path 类简介 本书推荐的起点是`java.nio.file.Path`类,这是一个抽象类,是NIO.2的一个里程碑。任何涉及I/O操作的...

    Java IO, NIO and NIO.2

    Java IO、NIO以及NIO.2是Java中用于处理输入/输出操作的三种主要机制。本书《Java IO, NIO and NIO.2》旨在深入浅出地介绍这些机制,同时书中内容均为英文。接下来将详细介绍这些知识点。 **Java IO** Java IO是...

    NIO.2 入门,第 2 部分: 文件系统 API

    本篇我们将深入探讨NIO.2中的几个关键概念和类,包括`Files`, `Path`, `FileAttributes`, `DirectoryWatcher`以及`FileVisitor`。这些组件极大地增强了Java对操作系统文件系统的访问能力。 首先,`Path`接口是NIO.2...

    java实现监视文件修改变更

    然后,我们可以调用`Path.register(WatchService, WatchEvent.Kind<?>...)`方法为感兴趣的路径注册监听器。`WatchEvent.Kind<?>`参数代表我们想要监听的事件类型,如`ENTRY_CREATE`(文件或目录创建)、`ENTRY_...

    基于Java的实例源码-目录监视器源程序.zip

    2. 事件处理器:处理不同类型的文件系统事件,如创建、删除和修改。 3. 日志记录:为了调试和监控,可能会有一个日志系统来记录所有监视到的事件。 4. 多线程支持:如果应用需要同时监视多个目录,那么代码可能包含...

    Java I/O, 2nd Edition

    4. **NIO.2**:从Java 7开始,引入了NIO.2,增加了对文件系统操作的更多支持,如Path类、Files类和DirectoryStream接口。NIO.2还引入了WatchService,可以监控文件系统的变更事件。 5. **套接字编程**:讲解了TCP和...

    获取文件编码方式的两种方式(1.cpdetector第三方jar包,包含源码elipse项目;2.EncodingDetect.java工具类)

    本篇文章将详细介绍两种常用的方法来检测Java程序中的文件编码:一是使用`cpdetector`第三方库,二是通过自定义的`EncodingDetect.java`工具类。 1. **cpdetector第三方库** `cpdetector`是一个开源的Java库,它...

    复制文件和文件夹

    在Java中,我们可以使用`java.nio.file`包中的`Files`类以及`Paths`类来实现文件和目录的复制。`Files.copy()`方法提供了多种复制选项,包括覆盖已存在文件等。 ```java import java.nio.file.Files; import java....

    csv java pathcsv java pathcsv java pathcsv java path

    在本篇文章中,我们将深入探讨如何在Java中读取、写入以及操作CSV文件,并结合“Path”类来管理文件路径。 首先,让我们理解CSV文件的基本结构。CSV文件由一行行的数据组成,每行数据由一个或多个字段组成,字段...

    java下载图片的几种方式,提供源代码

    自Java 8起,`java.nio.file.Files`工具类提供了很多便捷的文件操作方法。以下是如何使用它来下载图片: ```java import java.net.URL; import java.nio.channels.Channels; import java.nio.channels....

    第八次课IO操作二.zip

    NIO.2提供了更强大和灵活的文件系统操作,如Path类、Files类等,可以方便地获取文件属性、操作路径、检查文件权限等。 通过学习“第八次课IO操作二”,开发者能掌握Java IO的基本原理和常用操作,为实现各种复杂的...

    实例83_文件操作_拷贝文件.rar_实例文件操

    在IT行业中,文件操作是日常开发和系统管理中不可或缺的一部分,尤其在处理数据存储、传输和备份时。本实例“实例83_文件操作_拷贝文件”关注的是如何在不同的操作系统环境下复制文件,这是编程和系统管理中的基础...

    文件拷贝,复制文件,小例题

    在IT领域,文件拷贝和复制是日常工作中非常基础但重要的操作。无论是开发人员在调试代码,还是普通用户在管理个人文件,都需要频繁地进行文件的移动和复制。本小例题将深入探讨这一主题,旨在帮助你更好地理解和实现...

    java处理各种文件代码

    8. **Path和Files类**:`java.nio.file.Path`代表文件系统中的路径,`java.nio.file.Files`提供了一系列静态方法,方便进行文件操作,如创建、删除、读写文件,以及检查文件状态等。 9. **正则表达式处理文件名**:...

    java按行读取大文件并解析入库

    为了高效地处理这类问题,我们可以利用Java的`java.nio`包中的BufferedReader和FileChannel等类,实现按行读取大文件,并将其内容解析后存储到数据库中。本文将详细讲解这一过程。 首先,我们需要了解`java.nio`包...

    Java读取Properties文件的六种方法

    Java 7引入了NIO.2 API,我们可以使用`Files.newInputStream()`方法读取文件: ```java import java.nio.file.Files; import java.nio.file.Paths; Properties prop = new Properties(); try (InputStream input =...

    Java_Advanced_Programming_File_Directory_code.rar_java programmi

    自Java 7开始,引入了`java.nio.file.Path`接口和`java.nio.file.Paths`类,提供了更安全且平台无关的文件路径操作。它们支持创建、解析、比较和操作路径。 5. **文件过滤器**: `FileFilter`和`FilenameFilter`...

    大文件分割与合并

    import java.nio.file.Path; import java.nio.file.StandardOpenOption; public class FileMerger { public static void mergeFiles(String outputFilePath, String[] inputFilePaths) throws IOException { try ...

Global site tag (gtag.js) - Google Analytics