Java NIO.2总结

本文详细介绍了Java NIO.2的主要内容,包括NIO.2概述、文件系统、文件路径、文件及目录操作、文件元数据、文件系统校验以及创建、删除、复制和移动文件的方法。NIO.2在JDK1.7引入,提供了Asynchronous IO支持,简化了文件操作。重点讲解了Path和Files类的使用,以及如何处理符号链接、文件元数据和权限检查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 

NIO.2概述

文件系统

文件路径

文件及目录

文件元数据

文件、目录校验

创建、删除、复制、移动

文件、目录读写

新旧File API比较

参考文献


NIO.2概述

  NIO.2在JDK1.7中发布,针对原有的文件IO操作进行了优化及封装,并支持Asynchronous IO。从Java IO详细总结(源码解析)Java NIO详细总结(源码解析)这两篇文章中可以看到在针对文件进行操作时不管是IO还是NIO都需要搭配File,通过File来跟OS关联。而在NIO.2中围绕着文件系统提出了三大概念FileSystem,Path,Symbolic Links也是本文的核心内容,下面将逐一介绍。需要注意的是本文跟Java IO详细总结(源码解析)Java NIO详细总结(源码解析)一样,只讨论文件IO至于网络IO会在其他文章中展开。

文件系统

  在开始介绍NIO.2之前先来了解下什么是文件系统(File System)。文件系统在某种形式的媒体(通常是一个或多个硬盘)上存储和组织文件,以便于检索。目前使用的大多数文件系统都将文件存储在树(或层次结构)结构中。树的顶部是一个(或多个)根节点。在根节点下,有文件和目录(Microsoft Windows中的文件夹)。每个目录都可以包含文件和子目录,而这些文件和子目录又可以包含文件和子目录,潜在的深度几乎是无限的。一般常见的就是Windows以及UNIX系统,下面是一个常见的文件系统结构图:

                                                      

  对于Windows系统来说有分区的概念,文件系统的根节点可以是任意一个分区,而在UNIX系统中文件系统都是从/开始。拿test来说在Windos中的文件路径就是C:\data\test,对于UNIX就是/data/test。NIO.2中通过类Path来表示文件系统中的路径,其中路径又分为绝对路径以及相对路径:

  • 绝对路径:绝对路径一定带着根路径,例如/data/test就是一条完整的文件路径通过它可以找到对应的文件;
  • 相对路径:相对路径不是完整的文件路径例如data/test,它需要跟根目录/配合成一条完整的路径才能够找到对应文件。

  需要注意的是在Java中你可以随意构建一个Path实例,但是该对象对应的文件不一定存在于文件系统中,需要通过Files类来校验是否存在。

  在文件系统中值得一提的还有符号链接(Symbolic Link),符号链接指的是在文件系统中文件可以指向其他文件,在这个过程中源文件只是起到一个指向性的作用(指向目标文件)即路径C:\data\test与C:\etc\test访问的都是同一个文件test2,如下图所示:

                                        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值