首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

递归调用时,出现了空指针,该如何解决

2012-02-07 
递归调用时,出现了空指针public class SearchPicture{public static void main(String args[]){File f n

递归调用时,出现了空指针
public class SearchPicture{
public static void main(String args[]){
File f = new File("E:");
tree(f);
}

public static void tree(File f){
String[] s = null;
File[] trees = f.listFiles();
for(int i=0;i<trees.length;i++)
{
if(trees[i].isDirectory()){
tree(trees[i]);
}
s = trees[i].getName().split("\\.");
  if(s[s.length-1].equals("jpg")) {
System.out.println(trees[i].getAbsolutePath());
}
}
}
}
出现了空指针
怎么解决

[解决办法]

Java code
public static void tree(File f){[color=#FF0000]if(f.getName().equals("System Volume Information"))            return;[/color] //加这句,这个文件夹是无法访问的。String[] s = null;File[] trees = f.listFiles();for(int i=0;i<trees.length;i++){if(trees[i].isDirectory()){tree(trees[i]);}  s = trees[i].getName().split("\\.");  if(s[s.length-1].equals("jpg")) {//应该可能是这里报错了nullPointException吧!if not please show me locationSystem.out.println(trees[i].getAbsolutePath());}}
[解决办法]
在 for(int i=0;i<trees.length;i++) 这一行报的错。
trees 为 null 至于为什么,你看一下你的 E 盘里面那些文件夹你没有权限访问就知道了。

s = trees[i].getName().split("\\.");
if(s[s.length-1].equals("jpg")) {

这算什么代码。。。。。

为什么不这样判断 if (trees[i].getName().endsWith("jpg")) 自己去比一下执行速度那个快吧。

热点排行