您的位置:首页 > 职场人生

黑马程序员-JAVA高级视频_IO输入与输出-20天-3(File文件递归)

2013-03-25 10:47 573 查看
package string.itcastio;

import java.io.File;

/*
* 列出指定目录下文件或者文件夹,包含子目录中的内容
* 也就是列出目录下所有内容
* 因为目录中还有目录,只要使用同一个列出目录功能的函数完成即可
* 在列出过程中出现的还是目录的话,还可以再次调用本功能
* 也就是函数自身调用自身。
* 这种表现形式,或者编程手法,称为递归。
* 递归要注意:
* 1.限定条件
* 2.要注意递归的次数。尽量避免内存溢出。
*/
public class FileDemo3 {
public static void main(String[] args) {
File file = new File("F:\\javaweb");
// showDir(file);
// System.out.println(getSum(100));
showDirlevel(file, 0);
}

public static String getLevel(int level) {
StringBuilder sb = new StringBuilder();
sb.append("|--");
for (int i = 0; i < level; i++) {
sb.insert(0, "|  ");
}
return sb.toString();
}

/**
* 带层次的文件递归显示
*
* @param file
* @param level
*/
public static void showDirlevel(File file, int level) {
level++;
File[] files = file.listFiles();
for (File f : files) {
if (f.isDirectory()) {
showDirlevel(f, level);
} else {
System.out.println(getLevel(level) + f.getName());
}
}
}

/**
* 查看目录下的所有文件
*
* @param file
*/
public static void showDir(File file) {
File[] files = file.listFiles();
for (File f : files) {
if (f.isDirectory()) {
showDir(f);
}
System.out.println(f.getName());
}
}

/**
* 整数相加
*
* @param sum
* @return
*/
public static int getSum(int sum) {
if (sum == 1) {
return sum;
}
return sum + getSum(sum - 1);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐