在本篇博文中,本人主要讲解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

最新文章

  1. C++基础知识(3)---new 和 delete
  2. 总结-css编码规范
  3. Hibernate(五)__hql语句
  4. hadoop初识
  5. 关于Json处理的两个实例
  6. 用Dalvik指令集写个java类
  7. linux产生静态库和动态库
  8. DBHelper数据库操作类(二)
  9. 请求与通配符 mime 映射相匹配。请求映射到静态文件处理程序。如果有不同的前提条件,请求将映射到另一个处理程序。
  10. 硬盘安装windows7
  11. SQL ---指令实例语句
  12. leetcode第40题--First Missing Positive
  13. oracle数据库一些用户管理语句
  14. 控制成本,控制成本知识点,挣值和实际成本、EAC,ETC.TCPI解析表
  15. 学习笔记:python3,PIP安装第三方库(2017)
  16. Django的安装和启动
  17. [ci]容器ci索引
  18. Excel中的数据与DataSet的互换
  19. wikioi 1017 乘积最大
  20. [转]从头开始 GAN

热门文章

  1. vscode快速生成html模板(vscode快捷键&quot;!&quot;生成html模板)
  2. 算法训练 瓷砖铺放 【递归】java
  3. sql-lib闯关61-65
  4. Ubuntu18.04下安装MySQL5.7(支持win10-wsl环境)
  5. PHP - json_decode returns NULL的解决办法
  6. mybatis 入门基础
  7. CoderForces 327D Block Tower
  8. Activiti网关--包含网关
  9. C 送外卖
  10. Pytest系列(6) - conftest.py的详细讲解