看看这个Java程序 用递归遍历F盘中的所有文件,为啥会有空指针异常。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了看看这个Java程序 用递归遍历F盘中的所有文件,为啥会有空指针异常。相关的知识,希望对你有一定的参考价值。

import java.io.*;

public class Test
public static void main(String[] args)
File dir = new File("F:\\");
showDir(dir);

public static void showDir(File dir)
System.out.println(dir);
File[] fstr = dir.listFiles();
for(File file : fstr)
if(file.isDirectory())
showDir(file);
else
System.out.println(file);


你好,很高兴为你解答。
出现空指针异常的原因是因为F盘中有空文件夹。可以对程序做如下修改:
public class Test
public static void main(String[] args)
File dir = new File("G:\\");
showDir(dir);

public static void showDir(File dir)
System.out.println(dir);
File[] fstr = dir.listFiles();
if(fstr.length==0) //判断一下是否为空
return;

for(File file : fstr)
if(file.isDirectory())
showDir(file);
else
System.out.println(file);


参考技术A 因为你没有判断是不是空文夹,应该加上判断是不是空文件夹 参考技术B fstr.length==0此处还是会出现空指针;应该为if(fstr==null)
return;

以上是关于看看这个Java程序 用递归遍历F盘中的所有文件,为啥会有空指针异常。的主要内容,如果未能解决你的问题,请参考以下文章

如何用递归获取一个文件夹内的所有文件存放在一个文件数组中

java File类-递归遍历目录结构和树状展现

JAVA 遍历文件夹下的所有文件(递归调用和非递归调用)

JAVA 遍历文件夹下的所有文件(递归调用和非递归调用)

JAVA 遍历文件夹下的所有文件

案例:遍历目录