for(int i = 0; i < fileList.length; i++){
前面加上一句
if(fileList!=null)

解决方案 »

  1.   

    你把定义(final String path) 改成 (String path)一试。
      

  2.   

    fileList = f.list();
    f.list()有可能取不到,所以fileList就有可能是null
    这样,当fileList.length的时候,由于fileList是null,对null进行.length操作,就会抛出空指针异常的错误,所以建议第一位大虾的修改意见。
      

  3.   

    像baitianhai(hong) 所说
    在for前加两句
    if(fileList==null){
      System.out.println("Maybe error occured or file/directory not found.");
      return;
    }
      

  4.   

    不用JBuilder就试一试 sun forte
      

  5.   

    多谢各位解答。刚刚查了JDK文档,原来是自己对File的方法不熟悉,全都用错了,惭愧啊惭愧 :)刚刚学Java,很多东西都还不熟悉,希望能够得到大家的帮助,谢谢!我改了代码之后能够运行了,其实很简单,就是递归搜索特定文件夹下的所有文件,包括子文件夹(想起了几年前初学编程时的日子,呵呵)。方法名也改成了首单词小写,不知道还有什么不符合规范的,希望大家指出。另外,再想问一句,有什么比较好用的图形界面的小的Java调试工具可以用?现在的调试确实比较烦啊!
    ---------------------------
    import java.io.*;public class FileScaner{
    public static void dirScan(final String path, int level){
    File f = new File(path);

    String[] fileList;
    fileList = f.list();
    if(fileList==null){
    System.out.println("Maybe error occured or file/directory not found.");
    return;
    } for(int i = 0; i < fileList.length; i++){
    for(int j = 0; j < level; j++){
    System.out.print("");
    }
    System.out.print("|");
    System.out.println(fileList[i]);

    File f2 = new File(path + "\\" + fileList[i]);
    if (f2.isDirectory()){
    dirScan(path + "\\" + fileList[i], level+1);
    }
    }
    }

    public static void main(String[] args){
    dirScan(args[0], 0);
    }
    }
    ----------
    帖子先保留一阵子,希望能得到答案。明天结帖
      

  6.   

    推荐freejava3.0 + j2sdk1.4.1