ホームページ >Java >&#&チュートリアル >Java ファイル操作とファイル フィルターの概要 (例付き)

Java ファイル操作とファイル フィルターの概要 (例付き)

不言
不言オリジナル
2018-09-20 15:08:573693ブラウズ

この記事では、Java ファイル操作とファイル フィルターについて説明します (例を示します)。必要な方は参考にしていただければ幸いです。

ファイル操作

Java は、ファイルを操作するための File クラスを提供します。FIle は、ファイルまたはフォルダーの抽象表現、つまりオブジェクト表現です。よく使用されるいくつかのメソッドを要約しました。

  • File(File parenrt,String child)、FIle(String pathname)、File(Stringparent,String child) の 3 つのコンストラクターは、さまざまな用途で使用できます。インスタンス化を実現する方法のいくつか。

  • getAbsolutePath(): このファイルまたはフォルダーの絶対パスを返します。

  • getName(): このフォルダーまたはファイルの名前を返します

  • getPath(): 構築パラメータのパラメータである、このフォルダまたはファイルの表現を返します。

  • createNewFIle():新しいファイル

  • mkdir(): 新しいディレクトリを作成します。作成できるレイヤーは 1 つだけであることに注意してください。

  • mkdirs():多層ディレクトリ

  • isDirectory(): ディレクトリかどうかを判断します

  • ##isFile(): ファイルかどうかを判断します

  • list(): ファイルまたはディレクトリの名前の文字列配列を返します。

  • ##listFiles(): ファイルまたはディレクトリのファイル オブジェクトの配列を返します。
  • ファイル フィルター:

listFiles() 関数はファイル オブジェクトのリストを返します。場合によっては、.txt ファイルなどの特定のファイルだけが必要になり、残りは必要になります。返す必要はありませんが、配列を操作した後に返すこともできますが、これは少し複雑すぎます。Java では、このインターフェイス オブジェクトを listFiles のパラメータに渡します。フィルタリング。インターフェイスの accept はフィルター関数です。このメソッドは、取得されたファイルごとに呼び出されます。それ以外の場合は、ファイル名が削除されます。 # FilenameFilter フィルターでは、ファイルまたはディレクトリの名前のみを使用できます。 dir パラメーターは、ファイルの FIle オブジェクトではなく、ファイルが存在する現在のオブジェクトであるため、通常は name パラメーター

public interface FilenameFilter {
   boolean accept(File dir, String name);
}
# を使用します。 ##FileFilter:

FileFilter フィルター、パラメーター pathname はファイルの FIle オブジェクトで、これを通じてファイルのすべての属性を取得できます。たとえば、pathname.getName() はファイルの名前です。 、間接的な FIlenameFilter に変えることができます。強力な

public interface FileFilter {
    boolean accept(File pathname);
}

例:

import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;

/**
 * 自定义的局部内部类来自定义过滤器类,
 */
public class Generics {
    //自定义过滤器类实现FilenameFilter接口
    static class MyFilenameFilter implements FilenameFilter{
        @Override
        public boolean accept(File dir, String name) {
            return name.endsWith(".java");//只获取.java结尾的文件或目录
        }
    }
    //自定义过滤器类实现FileFilter接口
    static class MyFileFilter implements FileFilter{
        @Override
        public boolean accept(File pathname) {
            return pathname.getName().endsWith(".java");//只获取.java结尾的文件或目录
        }
    }
    public static void main(String[] args) {
        File file =new File("D:");
        //方式一:FileFilter过滤器
        File[] files=file.listFiles(new MyFileFilter());
        for (File f:files){
            System.out.println(f.getName());
        }
        //方式二:FilenameFilter过滤器
        File[] files2=file.listFiles(new MyFilenameFilter());
        for (File f:files2){
            System.out.println(f.getName());
        }
        //list()函数只能接受FilenameFilter对象,匿名内部类的形式实现,
        //或者可以理解为为什么既然有FileFilter,而还要FilenameFilter
            //  1.对于listFiles来说,FilenameFilter可以直接操作name,而不需要通过File对象获取
            //  2.对于list来说,它只能是FilenameFilter过滤器,因为得到的是String,已经不是File了
        String[] filenames = file.list(new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
                return name.endsWith(".java");
            }
        });
        for(String str:filenames){
            System.out.println(str);
        }
    }
}

以上がJava ファイル操作とファイル フィルターの概要 (例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。