在java中獲取指定類(lèi)型的文件,可以用帶參數(shù)的listFiles的來(lái)實(shí)現(xiàn)
在網(wǎng)上搜了一些方法,幾乎都是新建一個(gè)實(shí)現(xiàn)FilenameFilter或者FileFilter的類(lèi),然后把它作為listFiles的參數(shù)
但是在寫(xiě)一些簡(jiǎn)單的測(cè)試代碼的時(shí)候,我不想新建一個(gè)類(lèi),而是希望用更快的方法來(lái)實(shí)現(xiàn)文件的過(guò)濾
所以就可以這樣寫(xiě):
File filepath = new File("D://");File[] files = filepath.listFiles(new FilenameFilter() { @Override public boolean accept(File file, String s) { //查找文件名以.jpg結(jié)尾的文件 if (s.endsWith(".jpg")) { return true; } return false; }});這樣直接new一個(gè)實(shí)現(xiàn)FilenameFilter接口的對(duì)象作為listFiles的參數(shù),就不用再新建一個(gè)類(lèi)
listFiles還有另外一個(gè)參數(shù)FileFilter,也同樣可以實(shí)現(xiàn)過(guò)濾
File[] files = filepath.listFiles(new FileFilter() { @Override public boolean accept(File file) { //查找文件名以.jpg結(jié)尾的文件 if (file.getName().endsWith(".jpg")) { return true; } return false; }});除此之外,F(xiàn)ileFilter還有其他過(guò)濾文件的方式,比如查找所有非文件夾文件:
File[] files = filepath.listFiles(new FileFilter() { @Override public boolean accept(File file) { //查找所有非文件夾文件 if (!file.isDirectory()) { return true; } return false; }});查找指定大小的文件:
File[] files = filepath.listFiles(new FileFilter() { @Override public boolean accept(File file) { //查找大于1kb,小于2kb的文件 long length = file.length(); if (length > 1024 && length < 2048) { return true; } return false; }});個(gè)人感覺(jué)FileFilter比FilenameFilter更加強(qiáng)大
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注