NIO.2是自Java 7起JDK中包含的用于I / O操作的新API。使用此新API,您可以执行与

java.io以及许多出色的功能,例如:访问文件元数据和监视目录更改等。 显然,由于向后兼容,java.io包不会消失,但是我们鼓励为满足新的I / O需求而开始使用NIO.2。 在本文中,我们将看到使用此API过滤目录内容有多么容易。 有3种方法可以做到这一点,这就是为什么这篇文章是Part1。

你需要什么

NetBeans 7+或任何其他支持Java 7的IDE
JDK 7+

在某些应用程序中,过滤目录的内容是一项常见的任务,而NIO.2使其变得非常简单。 接下来将描述我们将要使用的类和接口:

  • java.nio.file.Path :接口,其对象可以表示文件系统中的文件或目录。 就像java.io.File,但是在NIO.2中。 无论您要执行什么I / O操作,都需要该接口的实例。
  • java.nio.file.DirectoryStream :接口,其对象遍历目录的内容。
  • java.nio.file.Files :带有对文件,目录等进行操作的静态方法的类。

我们将使用目录模式来过滤目录内容,这种模式类似于正则表达式,但更简单。 该模式与文件,目录等的名称匹配。它们位于目录内。 记住这一点很重要,使用此方法只能按文件名,目录名等进行过滤。

有关浮动的更多信息,
检查此Wiki 。 另外,在 Java文件 。

因此,假设我们有一个名为Images的目录,并且需要遍历该目录中的文件,但是我们只需要.png文件。 为此,我们必须遵循以下步骤:

  1. 获取一个指向目录Images的java.nio.file.Path实例。
  2. 打开使用java.nio.file.Files类,以及将目录和图案(* .PNG)作为参数的新java.nio.file.DirectoryStream。
  3. 使用java.nio.file.DirectoryStream实例遍历目录的内容。

接下来是使用作为参数传递的模式扫描目录的方法的源代码:

//in a class.../*** Scans the directory using the glob pattern passed * as parameter. * @param folder directory to scan* @param pattern glob pattern (filter)*/private static void scan(String folder, String pattern) {//obtains the Images directory in the app directoryPath dir = Paths.get(folder);//the Files class offers methods for validationif (!Files.exists(dir) || !Files.isDirectory(dir)) {System.out.println('No such directory!');}//Try with resources... so nice!try (DirectoryStreamds = Files.newDirectoryStream(dir, pattern)) {//iterate over the content of the directoryint count = 0;for (Path path : ds) {System.out.println(path.getFileName());count++;}System.out.println();System.out.printf('%d Files match the pattern', count);} catch (IOException ex) {ex.printStackTrace();}}

以下是在Windows计算机上执行的结果:

在我的Linux虚拟机上:

这就是我从Java中喜欢的东西,只需编写一次,就可以在任何地方运行! 希望您喜欢这篇文章,还有更多方法可以过滤目录的内容,我们将在以后的文章中进行探讨。

单击此处下载完整的源代码。

参考: Java 7:使用NIO.2进行文件过滤–来自Java和ME博客的JCG合作伙伴 Alexis Lopez的第1部分 。

翻译自: https://www.javacodegeeks.com/2012/10/java-7-file-filtering-using-nio-2-part-1.html

Java 7:使用NIO.2进行文件过滤-第1部分相关推荐

  1. Java 7:使用NIO.2进行文件过滤–第2部分

    大家好. 这是使用NIO.2系列进行文件过滤的第2部分. 对于那些尚未阅读第1部分的人 ,这里有个回顾. NIO.2是自Java 7起JDK中包含的用于I / O操作的新API.使用此新API,您可以 ...

  2. Java 7:使用NIO.2进行文件过滤–第3部分

    大家好. 这是使用NIO.2系列进行文件过滤的第3部分. 对于那些尚未阅读第1 部分或第2部分的人 ,这里有个回顾. NIO.2是自Java 7起JDK中包含的用于I / O操作的新API.使用此新A ...

  3. Java 7:使用NIO.2进行文件过滤-第2部分

    大家好. 这是使用NIO.2系列进行文件过滤的第2部分. 对于那些尚未阅读第1部分的人 ,这里有个回顾. NIO.2是自Java 7起JDK中包含的用于I / O操作的新API.使用此新API,您可以 ...

  4. Java实现文件过滤

    Java实现文件过滤的方法,比如我只想获得某个路径下.java文件 只需要实现FilenameFilter这个接口即可. 比如: private class FileFilter implements ...

  5. JAVA之旅(二十八)——File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤...

    JAVA之旅(二十八)--File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤 我们可以继续了,今天说下File 一.File概述 文件的操作是非常 ...

  6. JAVA之旅(二十八)——File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤

    JAVA之旅(二十八)--File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤 我们可以继续了,今天说下File 一.File概述 文件的操作是非常 ...

  7. Java NIO内存映射文件

    Java NIO 内存映射文件 文件操作的四大方法 效率对比 内存映射文件 缓冲区 缓冲区的获得: 文件加锁机制 文件锁使用注意点: 文件操作的四大方法 前提:内存的访问速度比磁盘高几个数量级,但是基 ...

  8. 【java】java sftp访问文件夹,java smb访问共享文件夹 按时间过滤查找文件 集成springboot

    文章目录 java的sftp传输 sftp按时间过滤文件列表 sftp注意事项 java smb1.0传输 smb1.0按时间过滤文件列表 smb注意事项 java smb2.0/3.0传输(smbj ...

  9. 【学习笔记】JAVA IO与NIO(new IO)的对比与不同IO模型的理解

    JAVA IO 分类: 几种IO 模型 1. 阻塞 IO 模型 2. 非阻塞 IO 模型 JAVA NIO 多路复用 IO 模型(即Java中的NIO) JAVA IO 思维导图: 分类: 按照流的方 ...

最新文章

  1. (一)swoole服务启动流程
  2. UITableViewCell 设置
  3. python网络编程——实现简单聊天
  4. 四、scrapy爬虫框架——scrapy管道的使用
  5. python开发项目架构图_我的第一个python web开发框架(8)——项目结构与RESTful接口风格说明...
  6. Origin绘制上面和右边边框
  7. spring基础——普通bean xml注入
  8. python基础教程博客_python基础教程(十)
  9. “算法天团”最强课程笔记已整理好,速查收!【附PPT打包下载】
  10. Windows Store App 音频和视频
  11. 从应用上看计算机将向那个方向发展,(2)2019年6月一级Ms Office试题
  12. wget整站抓取、网站抓取功能
  13. BN讲的很好的一篇文章
  14. MySQL查询用户行为,网站用户行为分析
  15. 【Android】【移动应用开发】基础案列
  16. ad10搜索快捷键_AD中常用的快捷方式
  17. 微信小程序、公众号侵权投诉流程
  18. web页面-JS/DOM/BOM/窗口滚动/修改内容/上传文件
  19. 基于强化学习与深度强化学习的游戏AI训练
  20. 【网络安全】细分领域总览

热门文章

  1. rabbitmq生产者基于事务实现发送确认
  2. Spring [CVE-2022-22965]漏洞处理
  3. lombok var_使用var,Lombok和Fluxtion轻松处理事件
  4. 自动化测试框架 2019_2019年用于自动化的5个最佳Java测试框架
  5. 震惊kafka_5个令人震惊的统计数据证明日志不足
  6. gradle入门_Gradle入门:集成测试
  7. 魔术笔反选_魔术二传手反图案
  8. java 挥发注解_Java的挥发性修饰符
  9. EA问题的JDK14实例
  10. java8 javafx_Java 8的新增功能(第1部分– JavaFX)