Rumah  >  Artikel  >  Java  >  Java menggunakan fungsi accept() kelas FileNameFilter untuk menapis fail dalam direktori yang ditentukan

Java menggunakan fungsi accept() kelas FileNameFilter untuk menapis fail dalam direktori yang ditentukan

WBOY
WBOYasal
2023-07-25 09:03:251981semak imbas

Java menggunakan fungsi accept() kelas FileNameFilter untuk menapis fail dalam direktori tertentu

Pengenalan:
Di Java, kita selalunya perlu menapis fail dalam direktori tertentu. Pada masa ini, anda boleh menggunakan antara muka FileNameFilter untuk menapis nama fail. Artikel ini akan memperkenalkan cara menggunakan fungsi accept() kelas FileNameFilter untuk melaksanakan penapisan fail dan memberikan contoh kod yang sepadan.

1. Apakah itu FileNameFilter?
FileNameFilter ialah antara muka yang mentakrifkan kaedah terima(Dir Fail, Nama String) untuk menapis fail dalam direktori. Apabila kaedah ini kembali benar, ini bermakna fail itu diterima, jika tidak, ia tidak diterima.

2. Bagaimana untuk menggunakan FileNameFilter untuk menapis fail?
Langkah-langkah untuk menggunakan antara muka FileNameFilter untuk penapisan fail adalah seperti berikut:

  1. Buat kelas yang melaksanakan antara muka FileNameFilter dan melaksanakan kaedah accept(). Dalam kaedah ini, anda boleh menentukan peraturan untuk penapisan fail.
  2. Buat objek Fail yang mewakili direktori yang ditentukan.
  3. Panggil kaedah listFiles() objek Fail untuk mendapatkan semua fail dalam direktori.
  4. Lintas tatasusunan fail dan panggil kaedah accept() objek FileNameFilter untuk menapis setiap fail. Fail yang diterima akan ditambahkan pada set hasil.

Berikut ialah contoh cara menggunakan FileNameFilter untuk menapis fail dalam direktori tertentu:

import java.io.*;

public class FileFilterExample {

    public static void main(String[] args) {
        File dir = new File("C:/folder");//指定目录
        String[] fileList;

        //创建一个实现了FileNameFilter接口的内部类
        FileNameFilterImpl filter = new FileNameFilterImpl(".txt");

        //调用listFiles()方法获取目录下的所有文件
        fileList = dir.list(filter);

        //遍历文件名数组
        for (String fileName : fileList) {
            System.out.println(fileName);
        }
    }

    //实现FileNameFilter接口的内部类
    static class FileNameFilterImpl implements FilenameFilter {
        private String ext;//扩展名

        public FileNameFilterImpl(String ext) {
            this.ext = ext;
        }

        //实现accept()方法
        public boolean accept(File dir, String name) {
            return name.toLowerCase().endsWith(ext);//只接受指定扩展名文件
        }
    }
}

Dalam kod contoh di atas, kami mencipta kelas dalaman FileNameFilterImpl yang melaksanakan antara muka FileNameFilter. Dalam kaedah accept(), kami menapis semua fail txt dalam direktori yang ditentukan dengan menentukan sama ada sambungan nama fail ialah ".txt".

Dalam kaedah main(), kami mula-mula mencipta objek Fail, mewakili direktori C:/folder. Kemudian, kami mencipta objek FileNameFilterImpl dan menyerahkannya sebagai parameter kepada kaedah list() objek File. Kaedah list() mengembalikan tatasusunan String yang mewakili senarai fail yang ditapis. Akhir sekali, kami menggunakan gelung for untuk melintasi dan mengeluarkan nama fail yang ditapis.

Di atas ialah pengenalan artikel ini kepada penggunaan Java bagi fungsi accept() kelas FileNameFilter untuk menapis fail dalam direktori yang ditentukan. Melalui antara muka FileNameFilter, kami boleh menapis secara fleksibel fail yang kami mahu mengikut keperluan kami sendiri. Saya harap artikel ini akan membantu pembaca memahami dan menggunakan FileNameFilter.

Atas ialah kandungan terperinci Java menggunakan fungsi accept() kelas FileNameFilter untuk menapis fail dalam direktori yang ditentukan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn