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 鹽城小土包 閱讀(170) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): J2EE

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿

          隨筆檔案(14)

          文章分類(lèi)(18)

          文章檔案(18)

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 沂源县| 静海县| 巴彦淖尔市| 芜湖县| 多伦县| 唐海县| 西贡区| 永川市| 普定县| 二连浩特市| 宜都市| 莫力| 绩溪县| 大关县| 正镶白旗| 遂溪县| 夹江县| 綦江县| 隆昌县| 会东县| 彭州市| 余江县| 克山县| 铜山县| 保定市| 福泉市| 临高县| 湘潭县| 永安市| 宣武区| 日土县| 延边| 西吉县| 惠安县| 青铜峡市| 兰西县| 奉节县| 子洲县| 连江县| 洛南县| 双江|