1. 程式人生 > >Java中File檔案類之檔案過濾器

Java中File檔案類之檔案過濾器

檔案過濾器

檔案過濾器是個介面
過濾器一:File[] listFiles(FileFilter filter) 

    public static void fun1() {
        // 測試過濾器(FileFilter)
        File file = new File("/Users/lanou/Desktop/level");
        // 使用過載 的 listFiles 方法
        File[] listFiles = file.listFiles(new MyFilter());
        for (File file2 : listFiles) {
            System.out.println(file2.getName());
        }
    }

// 編寫自定義的類 實現過濾器藉口
class MyFilter implements FileFilter{ // 按規則過濾檔案,過濾檔案時 返回false就被過濾 返回true保留 @Override public boolean accept(File pathname) { if (pathname.isDirectory()) { return false; } return true; } } // 過濾TXT檔案 class MyFilterTXT implements FileFilter{ @Override public
boolean accept(File pathname) { // 這麼寫相當於 所有第一級的檔案都判斷了一下 字尾是不是txt // 資料夾也在當中被判斷 然後被過濾掉了 // 判斷是資料夾直接返回true if (pathname.isDirectory()) { return true; } return pathname.getName().endsWith("txt"); } } // 通過過濾器 遍歷列印資料夾中的所有txt檔案 public static
void getTXTFile(File file) { File[] listFiles = file.listFiles(new MyFilterTXT()); for (File subFile : listFiles) { if (subFile.isDirectory()) { getTXTFile(subFile); } else { System.out.println(subFile.getName()); } } } public static void main(String[] args) { File file = new File("/Users/lanou/Desktop/level"); getTXTFile(file); }
過濾器二:File[] listFiles(FilenameFilter filter)

// 測試過濾器(FilenameFilter) 
class MyFileNameFilter implements FilenameFilter{

    @Override
    public boolean accept(File dir, String name) {
        /*
         * 引數1: 傳進來的資料夾根路徑
         * 引數2: 該路徑下的檔案的名字和資料夾的名字
         */
        // 利用這兩個引數建立一個檔案物件出來
        File file = new File(dir, name);
        System.out.println(file);
        return false;
    }
}
    // 遍歷所有檔案
    public static void getTXTFile(File file) {
        File[] listFiles = file.listFiles(new MyFileNameFilter());
        for (File subFile : listFiles) {
            if (subFile.isDirectory()) {
                getTXTFile(subFile);
            } else {
                System.out.println(subFile.getName());
            }
        }
    }

// 通過FilenameFilter過濾器獲取指定目錄中小於200K的小檔案
class MyFileNameFilterLength implements FilenameFilter {

    @Override
    public boolean accept(File dir, String name) {
        File file = new File(dir, name);
        // 過濾隱藏檔案
        if (file.isHidden()) {
            return false;
        }
        // 資料夾不過濾
        if (file.isDirectory()) {
            return true;
        }
        return file.length() < 200 *1024;
    }   
}

    public static void getTXTFile(File file) {
        File[] listFiles = file.listFiles(new MyFileNameFilterLength());
        for (File subFile : listFiles) {
            if (subFile.isDirectory()) {
                getTXTFile(subFile);
            } else {
                System.out.println(subFile.getName());
            }
        }
    }

    public static void main(String[] args) {
        File file = new File("/Users/lanou/Desktop/level");
        getTXTFile(file);
    }

相關推薦

JavaFile檔案檔案過濾器

檔案過濾器 檔案過濾器是個介面 過濾器一:File[] listFiles(FileFilter filter) public static void fun1() {

java的io流檔案操作

io流的檔案相關層次圖 File類 檔案是用來儲存資料的,目錄是管理檔案的特殊機制 在Java語言中,檔案和目錄的管理是由java.io.File類來實現的。File類也屬於java.io包,但它不是InputStream或者OutputStream的子類,因此不負責資料

JavaFile的getAbsolutePath()包含檔案的名稱

public static void test1(){         File file1 = new File(".\\test1.txt");         File file2 = new File("D:\\workspace\\test\\test1.txt"

Java常用IO流檔案流的基本使用姿勢

所謂的 IO 即 Input(輸入)/Output(輸出) ,當軟體與外部資源(例如:網路,資料庫,磁碟檔案)互動的時候,就會用到 IO 操作。而在IO操作中,最常用的一種方式就是流,也被稱為IO流。IO操作比較複雜,涉及到的系統呼叫比較多,相對操作記憶體而言效能很低。然而值得興奮的是,Java提供了很多實現

JavaFile檔案詳解

File 類 File: 1.可以操作檔案 2.可以操作資料夾 3.可以操作檔案的路徑 File的靜態成員變數 獲取路徑分隔符 static String pa

Java常見異常處理、檔案File、流的知識點總結

一、常見的異常處理情況   在Java中常見的兩種異常處理:捕捉異常(try-catch-finally)和丟擲異常(throw-throws) 1.捕捉異常(try/catch/finally): 用捕捉異常時,不能try、catch、finally單獨使用,需要配套使用

Java如何使用隨機存取檔案RandomAcessFile

 InputStream和OutputStream都只是單方面的讀和寫檔案的內容,如果有隨機的讀取和寫入檔案內容的需要那該怎麼辦? Java為我們提供了一個RandomAcessFile類,它就是專門

javaFile的delete()方法刪除檔案失敗的原因

一般來說 java file.delete失敗 有以下幾個原因  1.看看是否被別的程序引用,手工刪除試試(刪除不了就是被別的程序佔用) 2.file是資料夾 並且不為空,有別的資料夾或檔案,  3.極有可能自己前面沒有關閉此檔案的流(我遇到的情況) 這個方法我用來獲

JAVA檔案工具——檔案寫入(byte陣列、String方式、url寫入方式)

/** * 將byte陣列寫入檔案 * * @param path * @param fileName * @param content * @throws I

javaFilegetPath()、getAbsolutePath()、getCanonicalPath()區別?

mil dir block user out div cnblogs test file 簡單看一下描述,例子最重要。 1、getPath():   返回定義時的路徑,(就是你寫什麽路徑,他就返回什麽路徑) 2、getAbsolutePath():   返回絕對路徑,但不會

java如何使用application.property檔案裡面的值

自定義工具類PropertyUtil,並在該類的static靜態程式碼塊中讀取properties檔案內容儲存在static屬性中以供別的程式使用 package com.hafiz.www.util; import org.slf4j.Logger; import org.slf4j.Log

Java使用deleteOnExit()刪除臨時檔案出現的問題

       這幾天在做一個讀取外部系統檔案資料的任務,需要把外部檔案資料,讀到本地進行處理。        剛好,Java中可以建立臨時檔案,並且任務中要求需要刪除臨時檔案,通過查詢API,Java的File類

HTML5file方法上傳檔案預覽 示例

效果圖如下:  程式碼如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <s

java執行緒讀取配置檔案properties

配置檔案在很多方面可以用到,比如資料庫連線,資料庫工廠方法的呼叫,只要在配置檔案中修改即可,不用修改程式,使用起來還是很方便的。 現在演示一下通過執行緒讀取配置檔案進行反射的一種方法。 在專案中新建一個空白檔案,輸入的內容以下內容: item-dao-factory=com.github.Ven13.c

Java“/”,“.”所代表的檔案路徑

 我們在開發的過程中,經常會去讀、寫檔案。在讀寫檔案的時候,就不得不寫檔案的路徑,使用相對路徑的方式有兩種:”/”和 “.” 。在寫檔案的路徑的時候,需要了解一下幾點東西:   在java應用程式中,“.”代表的是執行class檔案時的目錄,而“/”代表的是磁碟分割槽的根

java的隨機讀寫檔案RandomAccessFile

java中的隨機讀寫檔案: RandomAccessFile raf = new RandomAccessFile(“test.dat”,“rw”); 1.raf.write();這個方法是寫入檔案一個位元組    raf.read();這個方法是讀取檔案一個位

javaFile列印目錄樹狀圖結構

程式碼解釋: 內含遞迴結構! package cn.bjsxt.array01; import java.io.File; public class TextFile {          public static void main(String[] args)

javaFile的常用所有方法及其應用

建立: createNewFile()在指定位置建立一個空檔案,成功就返回true,如果已存在就不建立,然後返回false。 mkdir()  在指定位置建立一個單級資料夾。 mkdirs()  在指定位置建立一個多級資料夾。 renameTo(File dest)如果目標檔

Java讀取classpath下的檔案

專案的工程目錄入如下: 從類路徑(classpath)下讀取檔案: 我們讀取resources目錄下的StringUtils.java檔案。 介紹幾種常見的方法: 1.使用絕對路徑法: File file = new File("D:\\ide

以下是JAVA三種方式實現檔案字元統計

以下是JAVA中三種方式實現檔案字元統計 package com.lyc.gui; import java.io.FileReader; import java.io.IOException; import java.util.HashMap; import java.util.Ha