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类的对象
相关文章
|
4天前
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
30 3
|
1天前
|
人工智能 安全 Java
Java8 - LocalDateTime时间日期类使用详解
Java8 - LocalDateTime时间日期类使用详解
|
2天前
|
安全 Java 程序员
|
2天前
|
Java
Java Class类
Java Class类
8 0
|
9天前
|
Java 编译器
Java Character 类
4月更文挑战第13天
|
10天前
|
存储 Java
Java基础教程(7)-Java中的面向对象和类
【4月更文挑战第7天】Java是面向对象编程(OOP)语言,强调将事务抽象成对象。面向对象与面向过程的区别在于,前者通过对象间的交互解决问题,后者按步骤顺序执行。类是对象的模板,对象是类的实例。创建类使用`class`关键字,对象通过`new`运算符动态分配内存。方法包括构造函数和一般方法,构造函数用于对象初始化,一般方法处理逻辑。方法可以有0个或多个参数,可变参数用`类型...`定义。`this`关键字用于访问当前对象的属性。
|
13天前
|
Java Shell
Java 21颠覆传统:未命名类与实例Main方法的编码变革
Java 21颠覆传统:未命名类与实例Main方法的编码变革
13 0
|
13天前
|
Java
Java 15 神秘登场:隐藏类解析未知领域
Java 15 神秘登场:隐藏类解析未知领域
17 0
|
15天前
|
安全 Java
append在Java中是哪个类下的方法
append在Java中是哪个类下的方法
23 9
|
16天前
|
JavaScript Java 测试技术
基于Java的网络类课程思政学习系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的网络类课程思政学习系统的设计与实现(源码+lw+部署文档+讲解等)
30 0
基于Java的网络类课程思政学习系统的设计与实现(源码+lw+部署文档+讲解等)