import org.junit.Test;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List; public class TestParseJson {
@Test
public void test() throws IOException {
Path startingDir = Paths.get("f:\\temp");
FindFileVisitor filterFilesVisitor= new FindFileVisitor(".wav","\\d+{13}"); Files.walkFileTree(startingDir, filterFilesVisitor); List<Path> files = filterFilesVisitor.getFilenameList();
System.out.println(files);
}
}
import java.nio.file.FileVisitResult;
import java.nio.file.Path;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.LinkedList;
import java.util.List; class FindFileVisitor extends SimpleFileVisitor<Path> { private List<Path> filenameList = new LinkedList<>();
private String fileSuffix = null;
private String pattern = null; public FindFileVisitor(String fileSuffix) {
this.fileSuffix = fileSuffix;
} public FindFileVisitor(String fileSuffix,String pattern)
{
this(fileSuffix);
this.pattern = pattern;
} public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) { String absPath = file.toString(); Path fileName = file.getFileName(); if (absPath.endsWith(fileSuffix)) { if(pattern != null)
{
//正则表达式+文件后缀名匹配整个文件名
//例如pattern \\d{13} 后缀.wav组成新的表达式 "\\d{13}\\.wav"
if(!fileName.toString().matches(pattern + fileSuffix))
{
return FileVisitResult.CONTINUE;
}
}
filenameList.add(file.normalize());
}
return FileVisitResult.CONTINUE;
} public List<Path> getFilenameList() {
return filenameList;
}
}

输出结果

java使用新的(nio)遍历文件(支持文件后缀名、文件名正则表达式匹配)的更多相关文章

  1. IO流-递归遍历目录下指定后缀名结尾的文件名称

    /* *自定义遍历目录下指定后缀名结尾文件的名称的方法: * * param file:指定目录 name:指定后缀名 */ 1 public static void FileName(File fi ...

  2. java实现批量修改指定文件夹下所有后缀名的文件为另外后缀名的代码

    java实现批量修改指定文件夹下所有后缀名的文件为另外后缀名的代码 作者:Vashon package com.ywx.batchrename; import java.io.File; import ...

  3. Python从文件中读取字符串,用正则表达式匹配中文字符的问题

    2013-07-27 21:01:37|           在Windows下,用Python从.txt文件中读取字符串,并用正则表达式匹配中文,在网上看了方法,用的时候发现中文没有被匹配.     ...

  4. Java实现POI读取Excel文件,兼容后缀名xls和xlsx

    1.引入所需的jar包: maven管理项目的话直接添加以下坐标即可: <!-- https://mvnrepository.com/artifact/org.apache.poi/poi -- ...

  5. java根据文件流判断文件类型(后缀名)

    import java.io.FileInputStream; public class FileType{ public static String bytesToHexString(byte[] ...

  6. php 文件上传后缀名与文件类型对照表(几乎涵盖所有文件)

    网上有很多php文件上传的类,文件上传处理是php的一个特色(至少手册上是将此作为php特点来展示的,个人认为php在数组方面的优异功能更有特 色),学php的人都知道文件上传怎么做,但很多人在编程中 ...

  7. PHP文件上传后缀名与文件类型对照表

    ie 火狐 id 后缀名 php识别出的文件类型 0 gif image/gif 1 jpg image/jpeg 2 png image/png 3 bmp image/bmp 4 psd appl ...

  8. MFC 的资源文件 就是那个后缀名是 .rc的那个

    参考: http://blog.csdn.net/zgrjkflmkyc/article/details/16897881 http://www.oschina.net/question/565065 ...

  9. [计算机]如何在win7下查看并更改文件的默认后缀名

    如何在win7下查看默认文件的后缀名并更改呢? 例如有一个文件本来是exe,想变更为txt.但是无法看到后缀名,就无法更改. 双击桌面上的计算机图标,或者任意盘符界面,单击如下图左侧“组织”右侧的下拉 ...

随机推荐

  1. Python3+Appium学习笔记08-元素定位

    appium整合了不同的自动化测试驱动程序.而新版本appium desktop 中安卓是使用UI Automator2来作为驱动程序的.以前版本是使用UI Automator1或 Selendroi ...

  2. php高精度计算

  3. 《流畅的Python》Data model(数据/对象模型)

    第一章 Data model ⚠️整本书都是讲解Data model,第一章是一个概述. ⚠️不适合初学者.因为special method和meta programming技巧只是Python代码的 ...

  4. JavaScript基础习题

    1.实现输入框的双向绑定 解析:所谓双向绑定,即view->model, model->view,可以考虑对象劫持,监听对象属性的变化 <input type="input ...

  5. 使用 webpack-bundle-analyzer 分析 webpack 代码库拆分块

    github:https://github.com/webpack-contrib/webpack-bundle-analyzer 1.安装: cnpm install webpack-bundle- ...

  6. Nginx中ngx_http_log_module模块

    指定⽇日志格式记录请求指令: access_log设置缓冲⽇日志写⼊入的路路径,格式和配置Syntax: access_log path [format[buffer=size] [gzip[=lev ...

  7. linux实操_shell运算符

    1."$((运算式))"或"[运算式]" 2.expr m + n 注意:expr运算符要有空格 3.expr m - n 4.expr \*,/,/% 乘,除 ...

  8. linux实操_shell预定义变量

    当前进程号: 运行后 后台最后一个进程号: 运行后

  9. Codeforces Round #551 (Div. 2) F. Serval and Bonus Problem (DP/FFT)

    yyb大佬的博客 这线段期望好神啊... 还有O(nlogn)FFTO(nlogn)FFTO(nlogn)FFT的做法 Freopen大佬的博客 本蒟蒻只会O(n2)O(n^2)O(n2) CODE ...

  10. Spring Boot 之FilterRegistrationBean --支持web Filter 排序的使用(转)

    Spring Boot 之FilterRegistrationBean  --支持web Filter 排序的使用Spring 提供了FilterRegistrationBean类,此类提供setOr ...