Java-NIO.2中Path、 Paths、Files类的使用
简介:
Java NIO (New IO,Non-Blocking IO)是从Java 1.4版本开始引入的一套新的IO API,可以替代标准的Java IO API。NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的(IO是面向流的)、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。
Java NIO 概述
- Java NIO (New IO,Non-Blocking IO)是从Java 1.4版本开始引入的一套新的IO API,可以替代标准的Java IO API。NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的(IO是面向流的)、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。
- Java API中提供了两套NIO,一套是针对标准输入输出NIO,另一套就是网络编程NIO。
- java.nio.channels.Channel
- |FileChannel:处理本地文件
- SocketChannel:TCP网络编程的客户端的Channel
- ServerSocketChannel:TCP网络编程的服务器端的Channel
- DatagramChannel:UDP网络编程中发送端和接收端的Channel
Path、Paths和Files核心API
- 早期的Java只提供了一个File类来访问文件系统,但File类的功能比较有限,所提供的方法性能也不高。而且,大多数方法在出错时仅返回失败,并不会提供异常信息。
- NIO. 2为了弥补这种不足,引入了Path接口,代表一个平台无关的平台路径,描述了目录结构中文件的位置。Path可以看成是File类的升级版本,实际引用的资源也可以不存在。 在以前IO操作都是这样写的:
- import java.io.File;
File file = new File("index.html");
- 但在Java7 中,我们可以这样写:
- import java.nio.file.Path;
- import java.nio.file.Paths;
Path path = Paths.get("index.html");
Path接口
String toString()
: 返回调用 Path 对象的字符串表示形式
boolean startsWith(String path)
: 判断是否以 path 路径开始
boolean endsWith(String path)
: 判断是否以 path 路径结束
boolean isAbsolute()
: 判断是否是绝对路径
Path getParent()
:返回Path对象包含整个路径,不包含 Path 对象指定的文件路径
Path getRoot()
:返回调用 Path 对象的根路径
Path getFileName()
: 返回与调用 Path 对象关联的文件名
int getNameCount()
: 返回Path 根目录后面元素的数量
Path getName(int idx)
: 返回指定索引位置 idx 的路径名称
Path toAbsolutePath()
: 作为绝对路径返回调用 Path 对象
Path resolve(Path p)
:合并两个路径,返回合并后的路径对应的Path对象
File toFile()
: 将Path转化为File类的对象