12、NIO--Path、、Paths、Files

NIO.2

随着 JDK 7 的发布,Java对NIO进行了极大的扩
展,增强了对文件处理和文件系统特性的支持,
以至于我们称他们为 NIO.2。因为 NIO 提供的
一些功能,NIO已经成为文件处理中越来越重
要的部分

Path 与 Paths

? java.nio.file.Path 接口代表一个平台无关的平台路径,描述了目
  录结构中文件的位置。
? Paths 提供的 get() 方法用来获取 Path 对象:
  ? Path get(String first, String … more) : 用于将多个字符串串连成路径。
? Path 常用方法:
  ? 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 类

? java.nio.file.Files 用于操作文件或目录的工具类。
? Files常用方法:
  ? 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 指定文件的大小

? Files常用方法:用于判断
  ? 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 指定的文件相关联的属性。
? Files常用方法:用于操作内容
  ? 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 对象

自动资源管理

? Java 7 增加了一个新特性,该特性提供了另外
  一种管理资源的方式,这种方式能自动关闭文
  件。这个特性有时被称为自动资源管理
  (Automatic Resource Management, ARM), 该特
  性以 try 语句的扩展版为基础。自动资源管理
  主要用于,当不再需要文件(或其他资源)时,
  可以防止无意中忘记释放它们

? 自动资源管理基于 try 语句的扩展形式:
  try(需要关闭的资源声明){
    //可能发生异常的语句
  }catch(异常类型 变量名){
    //异常的处理语句
  }
  ……
  finally{
    //一定执行的语句
  }
  当 try 代码块结束时,自动释放资源。因此不需要显示的调用 close() 方法。

  该形式也称为“带资源的 try 语句”。
  注意:
  ①try 语句中声明的资源被隐式声明为 final ,资源的作用局限于带资源的 try 语句
  ②可以在一条 try 语句中管理多个资源,每个资源以“;” 隔开即可。
  ③需要关闭的资源,必须实现了 AutoCloseable 接口或其自接口 Closeable

原文地址:https://www.cnblogs.com/Mrchengs/p/10841735.html

时间: 2024-10-23 11:02:08

12、NIO--Path、、Paths、Files的相关文章

BIO、NIO、AIO系列二:Netty

一.概述 Netty是一个Java的开源框架.提供异步的.事件驱动的网络应用程序框架和工具,用以快速开发高性能.高可靠性的网络服务器和客户端程序. Netty是一个NIO客户端,服务端框架.允许快速简单的开发网络应用程序.例如:服务端和客户端之间的协议,它简化了网络编程规范. 二.NIO开发的问题 1.NIO类库和API复杂,使用麻烦. 2.需要具备Java多线程编程能力(涉及到Reactor模式). 3.客户端断线重连.网络不稳定.半包读写.失败缓存.网络阻塞和异常码流等问题处理难度非常大 4

Java NIO、NIO.2学习笔记

相关学习资料 http://www.molotang.com/articles/903.html http://www.ibm.com/developerworks/cn/education/java/j-nio/j-nio.html 目录 1. NIO.NIO.2简介 2. NIO中的关键技术 1. NIO.NIO.2简介 Java中的输入流.输出流都是阻塞式的输入.输出.不仅如此,传统的输入流.输出流都是通过字节的移动来处理的(即使是字符流,在底层也是通过字节流来进行处理的),也就是说,面向

Netty、NIO、多线程

一:Netty.NIO.多线程? 时隔很久终于又更新了!之前一直迟迟未动也是因为积累不够,后面比较难下手.过年期间@李林锋hw发布了一个Netty5.0架构剖析和源码解读,看完也是收获不少.前面的文章我们分析了Netty的结构,这次咱们来分析最错综复杂的一部分-Netty中的多线程以及NIO的应用. 理清NIO与Netty的关系之前,我们必须先要来看看Reactor模式.Netty是一个典型的多线程的Reactor模式的使用,理解了这部分,在宏观上理解Netty的NIO及多线程部分就不会有什么困

Paint的setPathEffect(PathEffect effect)、以及Path的具体使用,收益多多!

Paint的setPathEffect(PathEffect effect).以及Path的具体使用,收益多多! 在这首先申明一下介绍只是为了学习使用 内容都来自:http://www.cnblogs.com/tianzhijiexian/p/4297783.html,感谢啦!受益多多! 一.setPathEffect() 这个方法一看就和path有关,顾名思义,它就是给path设置样式(效果)的.PathEffect这个路径效果类没有具体的实现,效果是由它的六个子类实现的: 这六个子类分别可以

os、os.path、shutil操作文件和文件路径的常用方法总结

os模块是python标准库中的一个用于访问操作系统功能的模块,下面简要介绍一下常用的命令 1.os.name().    判断现在正在使用的平台,windows返回'nt',Linux返回'posix' 2.os.getcwd()  得到当前工作的目录 3.os.listdir().   指定所在目录下民所有的文件和目录名 4.os.remove(). 删除指定文件 5.os.rmdir().    删除置顶目录 6.os.mkdir().   创建目录 7.os.system(). 执行sh

Java核心(五)深入理解BIO、NIO、AIO

导读:本文你将获取到:同/异步 + 阻/非阻塞的性能区别:BIO.NIO.AIO 的区别:理解和实现 NIO 操作 Socket 时的多路复用:同时掌握 IO 最底层最核心的操作技巧. BIO.NIO.AIO 的区别是什么? 同/异步.阻/非阻塞的区别是什么? 文件读写最优雅的实现方式是什么? NIO 如何实现多路复用功能? 带着以上这几个问题,让我们一起进入IO的世界吧. 在开始之前,我们先来思考一个问题:我们经常所说的"IO"的全称到底是什么? 可能很多人看到这个问题和我一样一脸懵

Java BIO、NIO与AIO的介绍(学习过程)

Java BIO.NIO与AIO的介绍 因为netty是一个NIO的框架,所以在学习netty的过程中,开始之前.针对于BIO,NIO,AIO进行一个完整的学习. 学习资源分享: Netty学习:https://www.bilibili.com/video/BV1DJ411m7NR?from=search&seid=8747534277052777648 Netty源码:https://www.bilibili.com/video/BV1cb411F7En?from=search&seid

下载-深入浅出Netty源码剖析、Netty实战高性能分布式RPC、NIO+Netty5各种RPC架构实战演练三部曲视频教程

下载-深入浅出Netty源码剖析.Netty实战高性能分布式RPC.NIO+Netty5各种RPC架构实战演练三部曲视频教程 第一部分:入浅出Netty源码剖析 第二部分:Netty实战高性能分布式RPC 第三部分:NIO+Netty5各种RPC架构实战演练

Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)

转载请注明出处:http://blog.csdn.net/anxpp/article/details/51512200,谢谢! 本文会从传统的BIO到NIO再到AIO自浅至深介绍,并附上完整的代码讲解. 下面代码中会使用这样一个例子:客户端发送一段算式的字符串到服务器,服务器计算后返回结果到客户端. 代码的所有说明,都直接作为注释,嵌入到代码中,看代码时就能更容易理解,代码中会用到一个计算结果的工具类,见文章代码部分. 相关的基础知识文章推荐: Linux 网络 I/O 模型简介(图文) Jav