关于使用listFile()遍历文件夹报空指针异常的问题
来源:互联网 发布:印刷自动拼版软件 编辑:程序博客网 时间:2024/05/16 19:22
主要想实现的功能是遍历文件夹,遇到文件夹将其展开,输出里面的文件。
我的源代码如下:
public class FileScanner { public static void main(String[] args) { File file = new File("F:/"); printFiles(file, 1); } public static void printFiles(File dir,int tab){ if(dir.isDirectory()){ File[] next = dir.listFiles(); for(int i = 0;i < next.length;i++) { for (int j = 0; j < tab; j++) { System.out.print("---"); } System.out.println(next[i].getName()); if(next[i].isDirectory()){ printFiles(next[i],tab+1); } } } } }
运行后报错:
**Exception in thread "main" java.lang.NullPointerException**
经查,这个程序出现空指针异常,是因为没有判断next是否为null,导致报错。
经修改:
public class FileScanner { public static void main(String[] args) {File file = new File("F:/"); printFiles(file, 1); } public static void printFiles(File dir, int tab) { if (dir.exists() && dir.isDirectory()) { File[] next = dir.listFiles(); if (next != null) { for (int i = 0; i < next.length; i++) { for (int j = 0; j < tab; j++) { System.out.print("---"); } System.out.println(next[i].getName()); if (next[i].isDirectory()) { printFiles(next[i], tab + 1); } } } } }}
对next先进行判断是否为null再及进行使用,就不会报错了。
以后需要注意这方面,空指针异常的错误太容易出现了~
0 0
- 关于使用listFile()遍历文件夹报空指针异常的问题
- 关于listView.setAdapter(adapter)报空指针异常的问题
- 关于使用getActionBar()报空指针异常的错误
- 关于使用equals()函数报 空指针 的错误问题
- 关于空指针报错的问题
- 关于使用startActivityForResult() back 返回报空指针异常
- 【问题汇总】IntentService报空指针异常的问题
- 关于android api的 getLayoutParams()方法报空指针异常!
- 使用数组、list、map报空指针异常的分析
- 【Android 基础】使用getActionBar()报空指针异常的解决方法
- ConcurrentHashMap报空指针异常问题
- setOnClickListener报空指针异常问题汇总
- 使用ActionBar报空指针异常
- 使用ButterKnife8.4报空指针异常
- 关于springmvc报的空指针的异常,就是在这个service方法报空指针的原因
- 关于java中使用Session时出现空指针异常的问题
- 关于空指针异常的副作用及代码规范问题
- 关于NullPointException空指针异常的保护问题
- Android技巧之相对高度使用
- 202. Happy Number
- 02-线性结构1 两个有序链表序列的合并 (15分)
- U盘安装CentOS7的最终解决方案
- 基本排序算法(pyhton实现)
- 关于使用listFile()遍历文件夹报空指针异常的问题
- Struts1.2
- C++学习之路(一)
- HihoCoder 1233 Boxes(bfs打表)
- PAT--1119. Pre- and Post-order Traversals
- Count Primes (质数的个数)
- hdoj 1081 To The Max
- select实现多路复用
- 想得太多,又做的太少