IO流中在指定目录找文件,以及递归
1.0 指定目录找文件
public class ListAllTest {
public static void main(String[] args) {
File dir = new File("E:\\Java");
listAll(dir, 0);
}
public static void listAll(File dir, int level) {
File[] files = dir.listFiles();
System.out.println(GetLevel(level) + dir.getName());
level++;
for (File file : files) {
if (file.isDirectory()) {
listAll(file, level);//此处就相当于用了递归
}
else {
System.out.println("file" + file.getName());
}
}
}
private static String GetLevel(int level) {
StringBuilder sb = new StringBuilder();
sb.append("!--");
for (int x = 0; x < level; x++) {
sb.insert(0," ");
sb.toString();
}
return sb.toString();
}
2.0递归注意事项(函数自身调用自身,功能在内部复用。)
(1)一定要设置条件。
(2)一定要控制次数,否则会出现压栈报错。