代码训练营——File,列出指定目录下的所有内容
2016-06-12 00:18
447 查看
列出指定目录下文件或者文件夹,包含字目录中的内容。也就是列出指定目录下的所有内容。
因为目录中还有目录,只要使用同一个列出目录功能的函数完成即可。
在列出过程中出现的还是目录的话,还可以再次调用本功能。也就是函数自身调用自身。
这种表现形式,或者编程手法,称为递归。
递归要注意:
1、限定条件:
2、要注意递归的次数,尽量避免内存溢出
上面递归的一个流程图:
因为目录中还有目录,只要使用同一个列出目录功能的函数完成即可。
在列出过程中出现的还是目录的话,还可以再次调用本功能。也就是函数自身调用自身。
这种表现形式,或者编程手法,称为递归。
递归要注意:
1、限定条件:
2、要注意递归的次数,尽量避免内存溢出
import java.io.*; class FileDemo3 { public static void main(String[] args) { //File dir = new File("d:\\java01"); //showDir(dir); sop(getSum(100)); } public static String getLevel(int level) { StringBuilder sb = new StringBuilder(); sb.append("|--"); for(int x = 0;x<level;x++) { //sb.append("|--"); sb.insert(0,"| "); } return sb.toString(); } public static void showDir(File dir,int level) { System.out.println(getLevel(level)+dir.getName()); level++; File[] files = dir.listFiles(); for(int x = 0;x<files.length;x++) { if(files[x].isDirectory()) showDir(files[x],level); else System.out.println(getLevel(level)+files[x]); } } public static void sop(Object obj) { System.out.print(obj); } public static int getSum(int n) { if(n==1) return 1; sop(n+"\n"); return n+getSum(n-1); } public static void toBin_2(int num) { if(num>0) { toBin_2(num/2); System.out.println(num%2); } } public static void toBin_1(int num) { StringBuilder sb = new StringBuilder(); while(num>0) { sb.append(num%2); num = num/2; } System.out.print(sb.reverse().toString()); } }
上面递归的一个流程图:
相关文章推荐
- php学习笔记之事务处理
- 栈实现的带括号的计算器
- 从github下载某个git库的4种方法
- Java反射之Field用法
- 如何开发java语言
- 游程编码与哈弗曼编码结合的压缩解压(c语言)
- 再谈PHP中单双引号的区别详解
- 最新最全PHP生成制作验证码代码详解(推荐)
- 详解PHP中cookie和session的区别及cookie和session用法小结
- php gd等比例缩放压缩图片函数
- PHP生成制作验证码的简单实例
- PhpMyAdmin 配置文件现在需要一个短语密码的解决方法
- java.sql.SQLNonTransientConnectionException异常
- java中的 i++ 和++i
- Day 1:输入和输出
- java获取图片的大小和尺寸
- php常用函数
- spring4+springMVC+hibernate4 整合
- python3 音乐播放器雏形, windows编程学习中,需要进一步优化
- win32evtlog Module的用法