NIO.2中Path,Paths,Files类

    xiaoxiao2023-11-16  164

    一.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

           FileChannels:处理本地文件

           SocketChannel:TCP网络编程的客户端的Channel

           ServerSocketChannel:TCP网络编程的服务器端的Channel

           DatagramChannel:UDP网络编程中发送端和接收端的Channel

    NIO.2:随着JDK7的发布,java对NIO进行了极大的扩展,增强了对文件处理和文件系统特性的支持,以至于我们称他们为NIO.2。

                 因为NIO提供的一些功能,NIO已经成为文件处理中越来越重要的部分。

    早期的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")同时,NIO.2在java.nio.file包下还提供了File,Paths工具类,Files包含了大量静态的工具方法来操作文件,Paths则包含了二个返回Path的静态工厂方法

    二.Paths类提供的静态方法get()方法用来获取Path对象:

                   static Path get(String first,String ...more):用于将多个字符串串成路径

                   static Path get(URL un):返回指定un对应的Path路径

    Path常用方法:

                  String toString():返回调用Path对象的字符串表示形式

                 boolean startWith(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类的对像

    三.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):删除一个文件/目录,如果不存在,执行报错

                   void deleteifExists(Path path):Path对应的文件/目录如果存在,执行删除

                   Path move(Path src,Path dest,CopyOption..how):将src移动到dest位置

                  long size(Path path):返回path 指定文件的大小

                   

            

    最新回复(0)