黑马程序员技术交流社区
标题:
代码和老师一样 怎么会报错啊?
[打印本页]
作者:
马林康
时间:
2012-6-28 15:04
标题:
代码和老师一样 怎么会报错啊?
本帖最后由 刘蕴学 于 2012-6-28 16:47 编辑
public class FileDemo5 {
public static void main(String[] args){
File f =new File("d:\\");
showDir(f);
}
public static void showDir(File dir){
System.out.println(dir);
File[] files =dir.listFiles();
for(File file:files){
if(file.isDirectory())
showDir(file);
else
System.out.println(file);
}
}
}
复制代码
1.jpg
(35.03 KB, 下载次数: 50)
下载附件
2012-6-28 15:04 上传
我的有包,不是包的问题;说要避开系统文件 回收站 请问怎么避开
作者:
李文龙
时间:
2012-6-28 15:11
你没加包,在前面加上 import java.io.*; 就可以编译了
作者:
吴琼
时间:
2012-6-28 15:14
package Test_1;
import java.io.File;
public class FileDemo5 {
public static void main(String[] args){
File f =new File("d:\\
");//File是
java.io下面的一个类.使用的时候需要导入的.
showDir(f);
}
public static void showDir(File dir){
System.out.println(dir);
File[] files =dir.listFiles();
for(File file:files){
if(file.isDirectory())
showDir(file);
else
System.out.println(file);
}
}
}
作者:
李伟
时间:
2012-6-28 16:28
public class FileDemo5 {
public static void main(String[] args){
File f =new File("d:\\");
showDir(f);
}
public static void showDir(File dir){
System.out.println(dir);
File[] files =dir.listFiles();
for(File file:files){
if(file.isHidden())//加上判断语句,跳过隐藏文件
{
System.out.println("这是个隐藏文件");
continue;
}
if(file.isDirectory())
showDir(file);
else
System.out.println(file);
}
}
}
作者:
张天天
时间:
2012-6-28 16:38
package Test_1;
import java.io.File;
public class FileDemo5 {
public static void main(String[] args){
File f =new File("d:\\");//File是java.io下面的一个类.使用的时候需要导入的.
showDir(f);
}
public static void showDir(File dir){
System.out.println(dir);
File[] files =dir.listFiles();
for(File file:files){
if(file.isDirectory())
showDir(file);
else
System.out.println(file);
}
}
}
作者:
游洪波
时间:
2012-6-28 16:40
public class FileDemo5 {
public static void main(String[] args){
File f =new File("d:\\");
showDir(f);
}
public static void showDir(File dir){
System.out.println(dir);
File[] files =dir.listFiles();
for(File file:files){
if(file.isDirectory())
showDir(file);
else
System.out.println(file);
}
}
}
第一:在最前面要使用import java.io.*;引入包
第二:某些隐藏文件时读不到的所以你上边才会出现空指针异常
解决办法是在文件遍历的时候加一个判断就好
public static void showDir(File dir){
System.out.println(dir);
File[] files =dir.listFiles();
for(File file:files){
if(!file.isHidden())//这句话是用来判断文件是否是一个隐藏文件,如果不是隐藏文件才让他继续执行
{
if(file.isDirectory())
showDir(file);
else
System.out.println(file);
}
}
}
这个是我从API找到的isHidden()方法的介绍希望能帮到你
1.JPG
(15.38 KB, 下载次数: 68)
下载附件
2012-6-28 16:40 上传
作者:
车风波
时间:
2012-6-28 16:41
直接判断是否是null就可以了,有些文件是不可以访问的,所以报空指针异常
作者:
陈洋洋
时间:
2012-6-28 23:30
在遇到系统的文件或者隐藏的文件夹,Java是不能遍历到的,返回一个null,所以会有空指针异常,因此,可以再listFile()方法后面判断一下,如果为null,直接结束方法return
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2