我的代码如下:
package code;
import java.io.*;
class FileTest 
{
/**
 * @param args
 * @throws IOException 
 * @throws InterruptedException 
 */
public static void main(String[] args) throws IOException, InterruptedException , NullPointerException
{

/*for(int i = 0 ; i<5; i++)
{
File f = File.createTempFile("wensun", "tmp");
f.deleteOnExit();
Thread.sleep(3000);
}*/
File fDir = new File(File.separator);
String strFile="Workspace"+File.separator+"javalearing"+File.separator+"src";
File f = new File(fDir,strFile);
String[] names = f.list();
for(int i=0;i<=names.length;i++)
{
System.out.println(names[i]);
}


}}结果elipse给我报错:
Exception in thread "main" java.lang.NullPointerException
at code.FileTest.main(FileTest.java:35)

解决方案 »

  1.   

    这样得到的f表示的路径是"\Workspace\javalering\src"(windows下);
    ...不知道是什么路径...
    如果要得到src的路径的话可以用
    File f = new File("." + File.separator + "src");
    f就表示src文件夹
    另外你的输出循环错了,应该是<names.length
      

  2.   

    String[] names = f.list();你没有判断返回值吧。 names 可能是null的!
      

  3.   

    \Workspace\javalering\src和"." + File.separator + "src"不是同一路径呀!
    可能返回是null,所以报错吧!
      

  4.   

    我用你的代码运行了一次。
    发现我的错误跟你的不一样。运行结果:
    code
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
    at code.FileTest.main(FileTest.java:25)
    我把其中循环条件改了一点        for(int i=0;i<names.length;i++)
            {
                System.out.println(names[i]);
            }这样运行就没有异常了。我推测你的异常可能也和这个有关系。请你仔细对比一下。或者告诉大家你要实现什么功能。方便大家给你解决问题。谢谢
      

  5.   

      File fDir = new File(File.separator);
    这行代码出现空指针异常。
      

  6.   

    File fDir = new File(File.separator);
    String strFile="Workspace"+File.separator+"javalearing"+File.separator+"src";
    File f = new File(fDir,strFile);
    你的这段代码创建了一个File对象,但是这个对象所对应的file在你的磁盘里面应该不存在的,你可以用File 的
    isexist()判断一下
    所以这个代码String[] names = f.list();中的names 是null,所以在下面调用这个names 的length属性
    的时候就会报空指针异常。