File & FilenameFilter

          package think.in.java.io;

          import java.io.File;
          import java.io.FilenameFilter;
          import java.util.Arrays;
          import java.util.regex.Pattern;

          /** 
           * Display a directory listing using regular expressions.
           * {Args: "D.*\.java"}
           * 
          @author WPeng
           *
           * 
          @since 2012-11-2
           
          */

          public class DirList {
              
          public static void main(String[] args) {
                  File path 
          = new File("D:\\Users\\wpeng\\workspace\\Hello\\src\\think\\in\\java\\io");
                  String[] list;
                  
          if(args.length == 0){
                      list 
          = path.list();
                  }
          else{
                      list 
          = path.list(new DirFilter(args[0]));
                  }
                  Arrays.sort(list, String.CASE_INSENSITIVE_ORDER);
                  
          for(String dirItem : list){
                      System.out.println(dirItem);
                  }
              }
          }
           
          class DirFilter implements FilenameFilter{
               
          private Pattern pattern;
               
          public DirFilter(String regex){
                   pattern 
          = Pattern.compile(regex);
               }
              @Override
              
          public boolean accept(File dir, String name) {
                  
          return pattern.matcher(name).matches();
              }
               
           }

          package think.in.java.io;

          import java.io.File;
          import java.io.FilenameFilter;
          import java.util.Arrays;
          import java.util.regex.Pattern;

          /**
           * Uses anonymous inner classes.
           * {Args: "D.*\.java"}
           * 
          @author WPeng
           *
           * 
          @since 2012-11-2
           
          */
          public class DirList2 {
              
          public static FilenameFilter filter(final String regex){
                  
          // Creation of anonymous inner class
                  return new FilenameFilter() {
                      
          private Pattern pattern = Pattern.compile(regex);
                      @Override
                      
          public boolean accept(File dir, String name) {
                          
          return pattern.matcher(name).matches();
                      }
                  }; 
          // End of anonymous inner class
              }

              
          public static void main(String[] args) {
                  File path 
          = new File("D:\\Users\\wpeng\\workspace\\Hello\\src\\think\\in\\java\\io");
                  String[] list;
                  
          if(args.length == 0){
                      list 
          = path.list();
                  }
          else{
                      list 
          = path.list(filter(args[0]));
                  }
                  Arrays.sort(list, String.CASE_INSENSITIVE_ORDER);
                  
          for(String dirItem : list){
                      System.out.println(dirItem);
                  }
              }

          }

          package think.in.java.io;

          import java.io.File;
          import java.io.FilenameFilter;
          import java.util.Arrays;
          import java.util.regex.Pattern;

          /**
           * Building the anonymous inner class "in-place".
           * {Args: "D.*\.java"}
           * 
          @author WPeng
           *
           * 
          @since 2012-11-2
           
          */

          public class DirList3 {

              
          public static void main(final String[] args) {
                  File path 
          = new File("D:\\Users\\wpeng\\workspace\\Hello\\src\\think\\in\\java\\io");
                  String[] list;
                  
          if(args.length == 0){
                      list 
          = path.list();
                  }
          else{
                      list 
          = path.list(new FilenameFilter() {
                          
          private Pattern pattern = Pattern.compile(args[0]);
                          @Override
                          
          public boolean accept(File dir, String name) {
                              
          return pattern.matcher(name).matches();
                          }
                      });
                  }
                  Arrays.sort(list, String.CASE_INSENSITIVE_ORDER);
                  
          for(String dirItem : list){
                      System.out.println(dirItem);
                  }
              }

          }

          /** Output:
           * DirList.java
           * DirList2.java
           * DirList3.java
           
          */

          posted on 2012-11-02 09:57 鹽城小土包 閱讀(171) 評論(0)  編輯  收藏 所屬分類: J2EE

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統計

          常用鏈接

          留言簿

          隨筆檔案(14)

          文章分類(18)

          文章檔案(18)

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 邵东县| 青川县| 泸水县| 东平县| 崇义县| 芜湖市| 和林格尔县| 娄底市| 香港 | 德阳市| 隆安县| 大庆市| 宁津县| 甘泉县| 罗平县| 称多县| 满洲里市| 宁阳县| 米林县| 正安县| 临湘市| 连州市| 怀远县| 徐水县| 石屏县| 贵溪市| 崇明县| 左云县| 冀州市| 米泉市| 定安县| 金湖县| 泸西县| 扎兰屯市| 监利县| 攀枝花市| 凤山市| 宜黄县| 林芝县| 且末县| 肇东市|