中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JAVA正則表達式過濾文件的實現方法

發布時間:2020-09-06 18:32:57 來源:腳本之家 閱讀:235 作者:QING____ 欄目:編程語言

JAVA正則表達式過濾文件的實現方法

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

1、適用于路徑確定,文件名時正則表達式的情況(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、適用于路徑確定,文件名正則表達式的情況,這種正則表達式是JAVA支持的表達式,而非系統(unix)文件系統表達式(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 正則表達式過濾文件的實例,如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乌鲁木齐县| 莱芜市| 上蔡县| 青河县| 玛纳斯县| 内乡县| 手游| 大厂| 淮北市| 双桥区| 平陆县| 长葛市| 台中市| 漾濞| 滨海县| 中宁县| 塘沽区| 南陵县| 吴川市| 双牌县| 长汀县| 连江县| 康平县| 任丘市| 呈贡县| 麻城市| 柏乡县| 奎屯市| 分宜县| 丘北县| 福清市| 岳池县| 望奎县| 长宁县| 芷江| 涡阳县| 盐边县| 河北区| 永吉县| 安福县| 延长县|