欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JAVA正則表達(dá)式過濾文件的實現(xiàn)方法

 更新時間:2017年09月01日 14:18:42   作者:QING____  
這篇文章主要介紹了JAVA正則表達(dá)式過濾文件的實現(xiàn)方法的相關(guān)資料,希望通過本文大家能夠掌握理解這部分內(nèi)容,需要的朋友可以參考下

JAVA正則表達(dá)式過濾文件的實現(xiàn)方法

  正則表達(dá)式過濾文件列表,聽起來簡單,如果用java實現(xiàn),還真需要一番周折,本文簡析2種方式 

1、適用于路徑確定,文件名時正則表達(dá)式的情況(jdk6的寫法)

String filePattern = "/data/logs/.+\\.log"; 
File f = new File(filePattern); 
File parentDir = f.getParentFile(); 
String regex = f.getName(); 
FileSystem FS = FileSystems.getDefault(); 
final PathMatcher matcher = FS.getPathMatcher("regex:" + regex); 
 
DirectoryStream.Filter<Path> fileFilter = new DirectoryStream.Filter<Path>() { 
 @Override 
 public boolean accept(Path entry) throws IOException { 
  return matcher.matches(entry.getFileName()) && !Files.isDirectory(entry); 
 } 
}; 
 
List<File> result = Lists.newArrayList(); 
try (DirectoryStream<Path> stream = Files.newDirectoryStream(parentDir.toPath(), fileFilter)) { 
 for (Path entry : stream) { 
  result.add(entry.toFile()); 
 } 
} catch (IOException e) { 
 e.printStackTrace(); 
} 
for(File file : result) { 
 System.out.println(file.getParent() + "/" + file.getName()); 
} 
 

2、適用于路徑確定,文件名正則表達(dá)式的情況,這種正則表達(dá)式是JAVA支持的表達(dá)式,而非系統(tǒng)(unix)文件系統(tǒng)表達(dá)式(jdk8寫法)

Path path = Paths.get("/data/logs"); 
Pattern pattern = Pattern.compile("^.+\\.log"); 
List<Path> paths = Files.walk(path).filter(p -> { 
 //如果不是普通的文件,則過濾掉 
 if(!Files.isRegularFile(p)) { 
  return false; 
 } 
 File file = p.toFile(); 
 Matcher matcher = pattern.matcher(file.getName()); 
 return matcher.matches(); 
}).collect(Collectors.toList()); 
 
for(Path item : paths) { 
 System.out.println(item.toFile().getPath()); 
} 
 

以上就是java 正則表達(dá)式過濾文件的實例,如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • spring 整合kafka監(jiān)聽消費的配置過程

    spring 整合kafka監(jiān)聽消費的配置過程

    這篇文章主要介紹了spring 整合kafka監(jiān)聽消費的配置過程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • java中并發(fā)Queue種類與各自API特點以及使用場景說明

    java中并發(fā)Queue種類與各自API特點以及使用場景說明

    這篇文章主要介紹了java中并發(fā)Queue種類與各自API特點以及使用場景說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 基于Java代碼實現(xiàn)支付充值的通用流程

    基于Java代碼實現(xiàn)支付充值的通用流程

    本文給大家分享一段java核心代碼實現(xiàn)支付充值的通用流程,非常不錯,具有參考借鑒價值,感興趣的朋友一起看看吧
    2016-05-05
  • Java Socket實現(xiàn)猜數(shù)字小游戲

    Java Socket實現(xiàn)猜數(shù)字小游戲

    這篇文章主要為大家詳細(xì)介紹了Java Socket實現(xiàn)猜數(shù)字小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • java獲取本月日歷表的方法

    java獲取本月日歷表的方法

    這篇文章主要為大家詳細(xì)介紹了java獲取本月日歷表的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • PageHelper在springboot中的使用方式

    PageHelper在springboot中的使用方式

    這篇文章主要介紹了PageHelper在springboot中的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Java中集合遍歷的方法示例代碼展示

    Java中集合遍歷的方法示例代碼展示

    在 Java 編程中,集合(Collection)是用于存儲和操作一組對象的重要工具,無論是數(shù)組、列表(List)、集合(Set),還是映射(Map),它們都提供了在不同場景下靈活使用的數(shù)據(jù)結(jié)構(gòu),這篇文章主要介紹了Java中集合遍歷的方法示例代碼展示,需要的朋友可以參考下
    2024-08-08
  • SpringCloud?分布式鎖的多種實現(xiàn)

    SpringCloud?分布式鎖的多種實現(xiàn)

    本文主要介紹了SpringCloud?分布式鎖的多種實現(xiàn),主要有三種方式,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Java實現(xiàn)網(wǎng)絡(luò)資源的單線程下載

    Java實現(xiàn)網(wǎng)絡(luò)資源的單線程下載

    這篇文章主要為大家詳細(xì)介紹了如何利用Java語言實現(xiàn)在一個線程中完成網(wǎng)絡(luò)資源的下載,文中的實現(xiàn)步驟講解詳細(xì),感興趣的可以嘗試下
    2022-10-10
  • 在SpringBoot中添加Redis及配置方法

    在SpringBoot中添加Redis及配置方法

    這篇文章主要介紹了在SpringBoot中添加Redis及配置redis的代碼,需要的朋友可以參考下
    2018-10-10

最新評論