NIO.2中Path,Paths,Files类

一.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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值