在本篇博文中,本人主要讲解NIO 的两个核心点 —— 缓冲区(Buffer) 和 通道 (Channel)之一的 缓冲区(Buffer),
有关NIO流的其他知识点请观看本人博文《详解 NIO流》
@
Path接口
概念:
java.nio.file.Path 接口代表一个平台无关的平台路径,描述了目录结构中文件的位置。
对象的获取手段:
Paths 提供的get()方法用来获取Path对象:
- Path get(String first,String… more): 用于将多个字符串串连成路径
常用API:
- boolean endsWith(String path) :
判断是否以 path 路径结束- boolean startsWith(String path) :
判断是否以 path 路径开始- boolean isAbsolute() :
判断是否是绝对路径- Path getFileName() :
返回与调用 Path 对象关联的文件名- Path getName(int idx) :
返回的指定索引位置 idx 的路径名称- int getNameCount() :
返回 Path 根目录后面元素的数量- Path getParent() :
返回 Path 对象包含整个路径,不包含 Path 对象指定的文件路径- Path getRoot() :
返回调用 Path 对象的根路径- Path resolve(Path p) :
将相对路径解析为绝对路径- Path toAbsolutePath() :
作为绝对路径返回调用 Path 对象- String toString() :
返回调用 Path 对象的字符串表示形式
那么,现在,本人再来讲解下 Files类:
Files类
概念:
java.nio.file.Files 用于操作文件或目录的工具类
由于 Files类 是一个工具类,它的常用API基本上都是static(静态)的,所以,我们不需要这个类的对象。
故本人在这里就不展示这个类的构造方法了。
现在,本人来展示下这个类的API:
常用方法:
- Path copy(Path src, Path dest, CopyOption … how) :
文件的复制- Path createDirectory(Path path, FileAttribute<?> … attr) :
创建一个目录- Path createFile(Path path, FileAttribute<?> … arr) :
创建一个文件- void delete(Path path) :
删除一个文件- Path move(Path src, Path dest, CopyOption…how) :
将 src 移动到 dest 位置- long size(Path path) :
返回 path 指定文件的大小- static Path write(Path path, Iterable<? extends CharSequence> lines, OpenOption... options) :
可以将List集合中的数据写到文件中
----
用于判断:- boolean exists(Path path, LinkOption … opts) :
判断文件是否存在- boolean isDirectory(Path path, LinkOption … opts) :
判断是否是目录- boolean isExecutable(Path path) :
判断是否是可执行文件- boolean isHidden(Path path) :
判断是否是隐藏文件- boolean isReadable(Path path) :
判断文件是否可读- boolean isWritable(Path path) :
判断文件是否可写- boolean notExists(Path path, LinkOption … opts) :
判断文件是否不存在- public static < A extends BasicFileAttributes> A readAttributes(Path path,Class< A > type,LinkOption...options) :
获取与 path 指定的文件相关联的属性。
----
用于操作内容:- SeekableByteChannel newByteChannel(Path path, OpenOption…how) :
获取与指定文件的连接,how 指定打开方式。- DirectoryStream newDirectoryStream(Path path) :
打开 path 指定的目录- InputStream newInputStream(Path path, OpenOption…how):
获取 InputStream 对象
OutputStream newOutputStream(Path path, OpenOption…how) :
获取 OutputStream 对象
那么,现在本人来展示下 Path接口 和 Files类 的使用:
部分API使用展示
本人还是通过文件的复制来展示:
package edu.youzg.about_nio.core; import java.io.IOException; import java.nio.channels.FileChannel; import java.nio.file.Files; import java.nio.file.Paths; import java.nio.file.StandardOpenOption; public class FileCopy { public static void main(String[] args) throws IOException { //文件复制 Files.copy(Paths.get("plantsVSzombies.mp4"), Paths.get("test.mp4"), StandardCopyOption.REPLACE_EXISTING); Files.copy(Paths.get("test.mp4"), new FileOutputStream("test2.mp4")); //移动剪切文件 Files.move(Paths.get("test2.mp4"), Paths.get("G:\\test3.mp4")); } }
首先,本人来展示下源文件的信息:
现在,本人来展示下生成的文件的信息:
那么,可以看到,文件的复制和剪切都成功了!
(本人 NIO流 博文链接:https:////www.cnblogs.com/codderYouzg/p/12418765.html)
来源:https://www.cnblogs.com/codderYouzg/p/12418878.html