91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

鹿泉市| 兴安县| 通化市| 镇坪县| 卓资县| 石城县| 奎屯市| 乐东| 义马市| 通榆县| 锡林浩特市| 梅州市| 抚顺市| 和政县| 仁寿县| 左云县| 龙州县| 容城县| 徐州市| 金阳县| 凯里市| 资讯| 商都县| 塔河县| 苍梧县| 方城县| 栾川县| 南昌市| 嵊州市| 枣阳市| 高阳县| 彩票| 平谷区| 庆阳市| 屏东市| 青河县| 田东县| 南宁市| 如东县| 九台市| 拉萨市|