我用的是netbeans编译器,有一个java IO的程序总是运行不出结果,不知道为什么package javaio;
import java.util.regex.* ;
import java.io.* ;
import java.util.* ;class DirFilter implements FilenameFilter {
          private Pattern pattern ;
          public DirFilter(String regex)  {
                    pattern = Pattern.compile(regex) ;
          }
          public boolean accept(File dir, String name)  {
                    return pattern.matcher(name).matches() ;
          }
}public class DirList {
          public static void main(String[] args)  {
                    File path = new File(".") ;
                    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) ;
          }
}
运行时参数为:"D.*\.java",运行没有结果,代码照着书上写的,郁闷。

解决方案 »

  1.   

    加上标红的代码,看看那个目录里有没有你要的.java文件,如果没有程序就是对的没有什么说的
    public static void main(String[] args)  {
                        File path = new File(".") ;
                     System.out.println(path.getAbsolutePath());
                        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) ;
              }
      

  2.   

    这个程序的功能是显示D开头的,后缀为java的文件。
    没结果是因为没有找到匹配的文件。
    不带参数你运行一下,可以看到目录列表。
      

  3.   

    给楼主一个实现类似的功能的代码吧:import java.io.*;
    import java.util.*;public class DirList {
    List<String> list = new ArrayList<String>();// 容器类 public void filelist(File directory) {
    File[] file = directory.listFiles();
    int length = file.length;// 获得文件的长度
    for (int i = 0; i < length; i++) {
    list.add(file[i].getName());
    if (file[i].isDirectory())
    filelist(file[i]);
    }
    } @SuppressWarnings("unchecked")
    public void printarray() {
    Iterator ite = list.iterator();
    while (ite.hasNext())
    System.out.println(ite.next());
    } public static void main(String[] args) {
    File file = new File("D:/java");
    DirList obj = new DirList();
    obj.filelist(file);// 注意调用顺序不能变
    obj.printarray();
    }
    }
      

  4.   


    import java.io.*;
    import java.util.*;public class DirList {
    List<String> list = new ArrayList<String>();// 容器类 public void filelist(File directory) {
    File[] file = directory.listFiles();
    int length = file.length;// 获得文件的长度
    for (int i = 0; i < length; i++) {
    list.add(file[i].getName());
    if (file[i].isDirectory())
    filelist(file[i]);
    }
    } @SuppressWarnings("unchecked")
    public void printarray() {
    Iterator ite = list.iterator();
    while (ite.hasNext())
    System.out.println(ite.next());
    } public static void main(String[] args) {
    File file = new File("D:/java");
    DirList obj = new DirList();
    obj.filelist(file);// 注意调用顺序不能变
    obj.printarray();
    }
    }