Java 7 – NIO文件革命
我要指的更改是添加了java.nio.file软件包。 java.nio.file软件包添加了类和接口,使使用Java中的文件和目录更加容易。 这些更改的首要也是最重要的一点就是复制或移动文件的能力。 我总是感到很沮丧,如果您要复制或移动文件,则必须滚动自己的“复制”或“移动”版本。 Guava项目com.google.common.io软件包中提供的实用程序提供了这些功能,但我认为复制和移动操作应是该语言的核心部分。 在接下来的几篇文章中,我将对此处讨论的类/接口以及一些其他未涵盖的类/接口进行更详细的介绍(包括代码示例)。 这篇文章是java.nio.file软件包中新功能的介绍和概述。
突围责任
如果您看一下目前的java.io软件包,那么绝大多数类都是针对输入流,输出流,读取器或写入器的。 只有一个类定义用于直接使用文件系统的操作,即File类。 java.io中的某些其他类将File对象作为构造函数中的参数,但是所有文件和目录的交互都是通过File类进行的。 在java.nio.file包中,功能已被引入其他类/接口。 首先要讨论的是Path接口和Files类。
路径和文件
Path对象类似于java.io.File对象,因为它可以表示文件系统上的文件或目录。 但是,Path对象更为抽象,因为它是代表文件系统上目录层次结构(可能包含或不包含文件)的一系列名称。 “路径”界面中没有允许使用目录或文件的方法。 定义的方法仅用于处理或操作Path对象,将一个Path解析为另一路径,等等。(有一种方法可用于从Path toFile中获取java.io.File对象。 File类现在包含一个toPath方法。)为了处理文件和目录,Path对象与Files类一起使用。 Files类完全由用于处理目录和文件的静态方法组成,包括复制,移动和用于符号链接的函数。 Files类中的另一个有趣的方法是newDirectoryStream方法,该方法返回一个DirectoryStream对象,该对象可以遍历目录中的所有条目。 尽管java.io.File类具有在其中提供FileFilter实例的list方法,但是newDirectoryStream可以使用字符串“ glob”(例如“ * .txt”)进行过滤。
文件存储
如前所述,与java.io包中的文件系统的所有交互都是通过File类。 这包括获取有关文件系统中已用或可用空间的信息。 在java.nio.file中,有一个FileStore类,它表示文件的存储类型,无论是设备,分区还是concreate文件系统。 FileStore类定义用于获取有关文件存储信息的方法,例如getTotalSpace,getUsableSpace,getUnallocated空间。 可以通过调用Files.getFileStore(Path path)方法来获取FileStore,该方法将返回该特定文件的FileStore。
文件系统和文件系统
顾名思义,文件系统提供对文件系统的访问,并且是文件系统中其他对象的工厂。 例如,FileSystem类定义一个getPath方法,该方法将字符串(/ foo / bar)转换为依赖于系统的Path对象,该对象可用于访问文件或目录。 FileSystem类还提供了一个getFileStores方法,该方法返回FileSystem中所有FileStore的可迭代方法。 FileSystems类使用静态FactorySystems.getDefault方法提供对FileSystem对象的访问。 还有一些用于创建自定义FileSystem对象的静态方法。
结论
这是使用java.nio.file软件包提供的文件的新功能的快速高级视图。 有更多的信息尚未在此处讨论,因此请看一下api文档。希望这篇文章能够使读者对Java 7中改进的文件处理感兴趣。请确保在我们继续探索时坚持学习。更详细的说明java.nio.file软件包必须提供的内容。
参考: Java 7的新增功能–我们的JCG合作伙伴 Bill Bejeck在“ 随机编码思想”博客上发表的(安静的)NIO文件革命
翻译自: https://www.javacodegeeks.com/2012/01/java-7-nio-file-revolution.html
Java 7 – NIO文件革命相关推荐
- java nio拷贝文件_Java 7 – NIO文件革命
java nio拷贝文件 Java 7("项目代币")已于去年7月问世. 此版本中的新增功能很有用,例如,尝试资源-从try块中自动处理可关闭的资源,switch语句中的字符串,用 ...
- JAVA之NIO按行读写大文件,完美解决中文乱码问题
JAVA之NIO按行读写大文件,完美解决中文乱码问题 参考文章: (1)JAVA之NIO按行读写大文件,完美解决中文乱码问题 (2)https://www.cnblogs.com/jpfss/p/89 ...
- java files_Java NIO Files 操作文件
Java7中文件IO发生了很大的变化,专门引入了很多新的类: import java.nio.file.DirectoryStream; import java.nio.file.FileSystem ...
- java 读取txt,java读取大文件
java 读取txt,java读取大文件 package com.bbcmart.util; import java.io.File; import java.io.RandomAccessFile; ...
- java 读取流的字符编码格式_如何使用Java代码获取文件、文件流或字符串的编码方式...
标签: 今天通过网络资源研究了一下如何使用Java代码获取文件.文件流或字符串的编码方式,现将代码与大家分享: package com.ghj.packageoftool; import info.m ...
- 理解Java的NIO
同步与阻塞 同步和异步是针对应用程序和内核的交互而言的. 同步:执行一个操作之后,进程触发IO操作并等待(阻塞)或者轮询的去查看IO的操作(非阻塞)是否完成,等待结果,然后才继续执行后续的操作. 异步 ...
- java 多种类型文件复制_java多种文件复制方式以及效率比较
1.背景 java复制文件的方式其实有很多种,可以分为 传统的字节流读写复制FileInputStream,FileOutputStream,BufferedInputStream,BufferedO ...
- java读取csv文件
2019独角兽企业重金招聘Python工程师标准>>> CSV其实就是COMMA SEPARATED VALUE的缩写. 在开发中用Java操作csv文件有专门的的API叫javac ...
- java流与文件——内存映射文件
[0]README 0.1) 本文描述转自 core java volume 2, 旨在理解 java流与文件--内存映射文件 的相关知识: 0.2)内存映射文件的目的是: 提高访问速度, 缓冲区Bu ...
最新文章
- 神同步!美国三地 Tesla 车主,自动驾驶都撞了警车
- js导出生成PDF插件
- hdu4994 博弈,按顺序拿球
- SAP Spartacus注入自定义的CurrentProductService
- AC automation 模板
- 取消一个请求(Cancel)
- 2021消费者数智化运营白皮书
- day14 java的super
- 微信又出隐藏“技能”,一夜之间朋友圈刷屏了
- LINUX下的流量监控shell脚本
- 前端页面卡顿、也许是DOM操作惹的祸?
- 【bzoj1668/Usaco2006 Oct】Cow Pie Treasures 馅饼里的财富——dp
- Oliver运维管理系统之一庐山真面目
- java读取excel的常用办法
- Windows XP 默认蓝色桌面的 RGB
- 史上最详细的测试用例的设计方法及案例
- ❤️C语言自定义类型的介绍❤️(结构体,枚举,联合体,位段)
- 泰晤士计算机专业排行,泰晤士2021世界大学学科排名:世界大学计算机学科排名...
- repo sync repo reset: error: entry ‘comand.py ‘ not uptodate . cannot merge
- 日光能和电池两用计算机,为什么太阳照射的光可以给太阳能转化为电,而我们的日光灯却不行?...
热门文章
- MySQL事务管理+安全管理+MySQL数据类型
- java线程——信号量(Semaphore)+障栅(CyclicBarrier)
- 特权级概述(哥子就想知道CPU是如何验证特权级的)GATE+TSS
- JAVA 实现 JWT
- packt_Packt和Java Code Geeks提供的$ 5 Java编程书籍!
- Neo4J OGM与Quarkus
- 用Java中的抽象类扩展抽象类
- 反应式服务中的线程本地状态可用性
- [MEGA DEAL]完整的Java编程训练营(94%折扣)
- java heroku_Heroku和Java –从新手到初学者,第1部分