Files.list()
迭代目錄及其子目錄文件Files.list()
能夠迭代目錄及其子目錄文件vue
Files.list(Paths.get(".")) //當前目錄 .forEach(System.out::println);
輸出:java
.\filename1.txt .\directory1 .\filename2.txt .\Employee.java
過濾器函數引用,isRegularFile表示普通文件spring
Files.list(Paths.get(".")) .filter(Files::isRegularFile) //過濾器:只保留普通文件,過濾掉文件目錄 .forEach(System.out::println);
輸出結果以下:後端
.\filename1.txt .\filename2.txt .\Employee.java
也能夠使用lambda表達式進行過濾springboot
Files.list(Paths.get(".")) .filter(s -> s.startsWith("file")) //過濾器:只保留以file開頭的文件及目錄 .forEach(System.out::println);
另外一種更靈活的遍歷目錄的方式Files.newDirectoryStream()
,若是咱們的目錄文件又深又多,DirectoryStream
能夠使迭代目錄的速度更快。前後端分離
Files.newDirectoryStream(Paths.get(".")) .forEach(System.out::println);
輸出結果與Files.list()
效果一致函數
.\filename1.txt .\directory1 .\filename2.txt .\Employee.java
Files.newDirectoryStream()
迭代指定文件後綴名的文件咱們能夠爲Files.newDirectoryStream()
傳遞第二個參數,指定過濾條件,好比以java(結尾)爲後綴名的文件微服務
Files.newDirectoryStream(Paths.get("."), path -> path.toString().endsWith(".java")) .forEach(System.out::println); Output: .\Employee.java
要查找全部隱藏文件,能夠在過濾器中使用lambda表達式file -> file.isHidden()
。或者,使用java8的方法引用。spa
final File[] files = new File(".").listFiles(file -> file.isHidden()); //or final File[] files = new File(".").listFiles(File::isHidden);
以爲對您有幫助的話,幫我點贊、分享!您的支持是我不竭的創做動力! 。另外,筆者最近一段時間輸出了以下的精品內容,期待您的關注。code