亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

昌平区| 台北县| 石屏县| 安徽省| 额尔古纳市| 翁源县| 马关县| 潜山县| 通渭县| 苍山县| 弥勒县| 九龙城区| 吉木乃县| 婺源县| 阆中市| 巩留县| 黑龙江省| 江陵县| 大关县| 乐都县| 朝阳区| 河津市| 古交市| 搜索| 青铜峡市| 都江堰市| 绥江县| 华亭县| 云南省| 南乐县| 白山市| 汉阴县| 上蔡县| 武川县| 华阴市| 北海市| 仙桃市| 沾益县| 元朗区| 建湖县| 萨迦县|