NIO、NIO.2 及 Path、Paths、Files
文章目录
Tips
NIO
New IO 或 Non-Blocking IO
NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同
NIO支持面向缓冲区的基于通道的IO操作,更高效。(IO是面向流的)
NIO.2
- 对
NIO的改进,增强了对 文件处理和文件系统特性的支持 NIO.2的在 java.nio.file 包下提供了Path、Paths、Files
Path
出现背景:File类功能有限,性能低,出错时不提供异常信息
Path可以看成是File类的升级版本,实际引用的资 源也可以不存在。
Path path = Paths.get("index.html");
StringtoString(): 返回调用 Path 对象的字符串表示形式booleanstartsWith(String path): 判断是否以 path 路径开始booleanendsWith(String path): 判断是否以 path 路径结束booleanisAbsolute(): 判断是否是绝对路径PathgetParent():返回Path对象包含整个路径,不包含 Path 对象指定的文件路径PathgetRoot():返回调用 Path 对象的根路径PathgetFileName(): 返回与调用 Path 对象关联的文件名intgetNameCount(): 返回Path 根目录后面元素的数量PathgetName(int idx): 返回指定索引位置 idx 的路径名称PathtoAbsolutePath(): 作为绝对路径返回调用 Path 对象Pathresolve(Path p):合并两个路径,返回合并后的路径对应的Path对象FiletoFile(): 将Path转化为File类的对象
Paths
staticPathget(String first, String … more): 用于将多个字符串串连成路径staticPathget(URI uri): 返回指定uri对应的Path路径
Files
Pathcopy(Path src, Path dest, CopyOption … how): 文件的复制PathcreateDirectory(Path path, FileAttribute<?> … attr): 创建一个目录PathcreateFile(Path path, FileAttribute<?> … arr): 创建一个文件voiddelete(Path path): 删除一个文件/目录,如果不存在,执行报错voiddeleteIfExists(Path path): Path对应的文件/目录如果存在,执行删除Pathmove(Path src, Path dest, CopyOption…how): 将 src 移动到 dest 位置longsize(Path path): 返回 path 指定文件的大小booleanexists(Path path, LinkOption … opts): 判断文件是否存在booleanisDirectory(Path path, LinkOption … opts): 判断是否是目录booleanisRegularFile(Path path, LinkOption … opts): 判断是否是文件booleanisHidden(Path path): 判断是否是隐藏文件booleanisReadable(Path path): 判断文件是否可读booleanisWritable(Path path): 判断文件是否可写booleannotExists(Path path, LinkOption … opts): 判断文件是否不存在SeekableByteChannelnewByteChannel(Path path, OpenOption…how): 获取与指定文件的连 接,how 指定打开方式。DirectoryStream<Path>newDirectoryStream(Path path): 打开 path 指定的目录InputStreamnewInputStream(Path path, OpenOption…how):获取 InputStream 对象OutputStreamnewOutputStream(Path path, OpenOption…how): 获取 OutputStream 对象










