Java文件與類(lèi)動(dòng)手動(dòng)腦實(shí)例詳解
動(dòng)手動(dòng)腦1:
使用Files. walkFileTree()找出指定文件夾下所有大于指定大?。ū热?M)的文件。
package classJava; import java.io.IOException; import java.nio.file.FileSystems; import java.nio.file.FileVisitOption; import java.nio.file.FileVisitResult; import java.nio.file.FileVisitor; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.attribute.BasicFileAttributes; import java.util.EnumSet; public class titletwo implements FileVisitor<Object> { private long accepted_size; public void titletwo(String glob,long accepted_size) { FileSystems.getDefault().getPathMatcher("glob:" +glob); this.accepted_size=accepted_size; } void search(Path file) throws IOException { long size = (Long) Files.getAttribute(file, "basic:size"); if(size ==accepted_size) { System.out.println(file); } } @Override public FileVisitResult postVisitDirectory(Object dir, IOException exc)throws IOException { return FileVisitResult.CONTINUE; } @Override public FileVisitResult preVisitDirectory(Object dir, BasicFileAttributes attrs)throws IOException { return FileVisitResult.CONTINUE; } @Override public FileVisitResult visitFile(Object file, BasicFileAttributes attrs)throws IOException { search((Path) file); return FileVisitResult.CONTINUE; } @Override public FileVisitResult visitFileFailed(Object file, IOException exc)throws IOException { return FileVisitResult.CONTINUE; } public static void main(String[] args) throws IOException{ String glob= "*.jpg"; long size = 28672; Path fileTree = Paths.get("D:/"); titletwo walk=new titletwo(); EnumSet<FileVisitOption> opts=EnumSet.of(FileVisitOption.FOLLOW_LINKS); System.out.println("D盤(pán)中大小等于28672字節(jié)的文件有"); Files.walkFileTree(fileTree, opts, Integer.MAX_VALUE, walk); } }
使用Files. walkFileTree()找出指定文件夾下所有擴(kuò)展名為.txt和.java的文件。
package classJava; import java.io.IOException; import java.nio.file.FileSystems; import java.nio.file.FileVisitResult; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.PathMatcher; import java.nio.file.Paths; import java.nio.file.SimpleFileVisitor; import java.nio.file.attribute.BasicFileAttributes; public class titletwo { public static void main(String args[]) throws IOException { String glob = "glob:**/*.{java,txt}"; String path = "D:/"; match(glob, path); } public static void match(String glob, String location) throws IOException { final PathMatcher pathMatcher = FileSystems.getDefault().getPathMatcher( glob); Files.walkFileTree(Paths.get(location), new SimpleFileVisitor<Path>() { @Override public FileVisitResult visitFile(Path path, BasicFileAttributes attrs) throws IOException { if (pathMatcher.matches(path)) { System.out.println(path); } return FileVisitResult.CONTINUE; } @Override public FileVisitResult visitFileFailed(Path file, IOException exc) throws IOException { return FileVisitResult.CONTINUE; } }); } }
使用Files. walkFileTree()找出指定文件夾下所有包容指定字符串的txt文件。
package classJava; import java.io.IOException; import java.io.*; import java.nio.file.FileSystems; import java.nio.file.FileVisitResult; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.PathMatcher; import java.nio.file.Paths; import java.nio.file.SimpleFileVisitor; import java.nio.file.attribute.BasicFileAttributes; public class titletwo { public static void main(String args[]) throws IOException { String glob = "glob:**/*.txt"; String path = "D:\\wenjian"; match(glob, path); } public static void match(String glob, String location) throws IOException { final PathMatcher pathMatcher = FileSystems.getDefault().getPathMatcher( glob); Files.walkFileTree(Paths.get(location), new SimpleFileVisitor<Path>() { @Override public FileVisitResult visitFile(Path path, BasicFileAttributes attrs) throws IOException { if (pathMatcher.matches(path)) { BufferedReader reader =Files.newBufferedReader(path);//讀取文件內(nèi)的內(nèi)容 String line=null; while((line = reader.readLine())!=null) { if(line.equals("account"))//若讀取的內(nèi)容等于“account"則輸出文件名 { System.out.println(path); break; } } } return FileVisitResult.CONTINUE; } @Override public FileVisitResult visitFileFailed(Path file, IOException exc) throws IOException { return FileVisitResult.CONTINUE; } }); } }
動(dòng)手動(dòng)腦2:
java.nio.file.WatchService文件系統(tǒng)監(jiān)視服務(wù)的接口類(lèi),它的具體實(shí)現(xiàn)由監(jiān)視服務(wù)提供者負(fù)責(zé)加載。
java.nio.file.Watchable 實(shí)現(xiàn)了 java.nio.file.Watchable 的對(duì)象才能注冊(cè)監(jiān)視服務(wù) WatchService。java.nio.file.Path實(shí)現(xiàn)了 watchable 接口,后文使用 Path 對(duì)象注冊(cè)監(jiān)視服務(wù)。
java.nio.file.WatchKey 該類(lèi)代表著 Watchable 對(duì)象和監(jiān)視服務(wù) WatchService 的注冊(cè)關(guān)系。WatchKey 在 Watchable 對(duì)象向 WatchService 注冊(cè)的時(shí)候被創(chuàng)建。它是 Watchable 和 WatchService 之間的關(guān)聯(lián)類(lèi)。
以上就是本次介紹的關(guān)于Java文件與類(lèi)動(dòng)手動(dòng)腦實(shí)例的全部知識(shí)點(diǎn),感謝大家的學(xué)習(xí)和對(duì)腳本之家的支持。
相關(guān)文章
opencv實(shí)現(xiàn)簡(jiǎn)單人臉識(shí)別
這篇文章主要為大家詳細(xì)介紹了opencv實(shí)現(xiàn)簡(jiǎn)單人臉識(shí)別,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08基于Mediapipe+Opencv實(shí)現(xiàn)手勢(shì)檢測(cè)功能
mediaPipe,他就是一個(gè)集成好的包括人臉關(guān)鍵位點(diǎn)識(shí)別、身體關(guān)鍵位點(diǎn)識(shí)別、手部關(guān)鍵位點(diǎn)識(shí)別的一個(gè)包或者庫(kù),直接調(diào)用就能夠得到它的關(guān)鍵位點(diǎn)信息,本文給大家介紹Mediapipe+Opencv實(shí)現(xiàn)手勢(shì)檢測(cè)功能,感興趣的朋友一起看看吧2022-01-01pyTorch深度學(xué)習(xí)softmax實(shí)現(xiàn)解析
這篇文章主要介紹了pytorch深度學(xué)習(xí)中對(duì)softmax實(shí)現(xiàn)進(jìn)行了詳細(xì)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-09-09Python中Pickling和Unpickling的區(qū)別詳解
在本文中,我們將探討 Python 中 pickling 和 unpickling 之間的主要區(qū)別,我們將詳細(xì)討論 Python pickling 和 unpickling 的概念,包括它們的目的、語(yǔ)法、用法以及安全可靠的 pickling 和 unpickling 操作的注意事項(xiàng),需要的朋友可以參考下2023-09-09Python split() 函數(shù)拆分字符串將字符串轉(zhuǎn)化為列的方法
今天小編就為大家分享一篇Python split() 函數(shù)拆分字符串將字符串轉(zhuǎn)化為列的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07Python數(shù)據(jù)結(jié)構(gòu)與算法之算法分析詳解
算法分析的主要目標(biāo)是從運(yùn)行時(shí)間和內(nèi)存空間消耗等方面比較算法。本文將為大家詳細(xì)介紹Python數(shù)據(jù)結(jié)構(gòu)與算法中的算法分析,需要的可以參考一下2021-12-12