next up previous
Next: 3.3 ファイルのOpen, 文字読み込み Up: 3 ファイルの取り扱い Previous: 3.1 Fileクラス

3.2 FilenameFilterインタフェース

バイトストリーム,文字ストリームの両方には, FilenameFilterというストリームをフィルタリングする インタフェースがある. このインタフェースを実装したクラスにおいて メソッドとしてacceptを定義しておくと,そのオブジェクトに フィルターオブジェクトを引数としたlistメソッドを送った 場合にそのフィルターオブジェクトのacceptが呼び出される.
public interface FilenameFilter {
  boolean accept(File dir, String name);
}

//: DirList.java
// Copyright (c) Bruce Eckel, 1998
// Displays directory listing
import java.io.*;

public class DirList {
  public static void main(String[] args) {
    try {
      File path = new File(".");
      String[] list;
      if(args.length == 0)
        list = path.list();
      else 
        list = path.list(new DirFilter(args[0]));
      for(int i = 0; i < list.length; i++)
        System.out.println(list[i]);
    } catch(Exception e) {
      e.printStackTrace();
    }
  }
}

class DirFilter implements FilenameFilter {
  String afn;
  DirFilter(String afn) { this.afn = afn; }
  public boolean accept(File dir, String name) {
    // Strip path information:
    String f = new File(name).getName();
    return f.indexOf(afn) != -1;
  }
}


generated through LaTeX2HTML. M.Inaba 平成18年5月7日