java初学者,正在学习File类,运行书上的程序,出现了问题
package example.fileDemo;
import java.io.*;
import java.util.*;
public class fileDemo {
public void readFileList(File file,Filter filter)
{
if(file.isDirectory())
{
try {
File[] files = file.listFiles(filter);
ArrayList<File> fileList = new ArrayList<File>();
for(int a = 0;a<files.length;a++)
{
if(files[a].isDirectory())
{
System.out.println("["+files[a].getPath()+"]");
readFileList(files[a],filter);
}else {
fileList.add(files[a]);
}
}
for(File f:fileList)
{
readFileList(f, filter);
}
System.out.println();
}
catch(ArrayIndexOutOfBoundsException e)
{
e.printStackTrace();
}
}else if(file.isFile())
{
FileDesc(file);
}
}
public void FileDesc(File file)
{
if(file.isFile()) {
System.out.println(file.toString()+"\n该文件");
System.out.println(file.canRead()?"可读":"不可读");
System.out.println(file.canWrite()?"可写":"不可写");
System.out.println(file.length()+"字节");
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String fileName = args[0];
File file = new File(fileName);
Filter filter = new Filter("java");
new fileDemo().readFileList(file,filter);
}
}
class Filter implements FilenameFilter{
String extent;
Filter(String extent)
{
this.extent = extent;
}
public boolean accept(File dir,String name)
{
return name.endsWith("."+extent);
}
}
参数设置为D盘中的一个文件夹,
点击运行之后,控制台没有输出,我进行了单步运行,发现在程序从上往下数第一个for循环处未执行循环,直接跳出了,不知道原因是什么,求大神指点