黑马程序员-递归
来源:互联网 发布:专门看电影的软件 编辑:程序博客网 时间:2024/06/06 17:33
----------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
/*列出指定目录下文件或文件夹,包含子目录中的内容也就是列出指定目录下所有内容 因为目录中还有目录,只要使用同一个列出目录功能的函数完成即可在列出过程中出现的还是目录的话,可以再次调用本功能。也就是函数自身调用自身这种表现形式,或者编程手法,称为递归 递归要注意:1.限定条件2.要注意递归的次数,尽量避免内存溢出*/import java.io.*;class FileDemo3{ public static voidmain(String[] args) { //showDir(newFile("D:\\java0217")); toBin(6); } public static void toBin(int num) { /* while(num>0) { System.out.println(num%2); num/=2; }*/ if(num>0) { toBin(num/2); System.out.print(num%2); } } public static boolean showDir(File dir) { if(!dir.exists()) returnfalse; System.out.println(dir); File[]names=dir.listFiles(); for(Filename:names) { if(name.isDirectory()) showDir(name); else System.out.println(name+"..."+name.length()); } return true; }}
带层级目录
import java.io.*;class FileDemo3{ public static voidmain(String[] args) { showDir(newFile("D:\\java0217"),0); } public static StringgetLevel(int level) { StringBuildersb=new StringBuilder(); for(intx=0;x<level;x++) { sb.append(" "); } returnsb.toString(); } public static booleanshowDir(File dir,int level) { if(!dir.exists()) returnfalse; System.out.println(getLevel(level)+dir); level++; File[]names=dir.listFiles(); for(Filename:names) { if(name.isDirectory()) showDir(name,level); else System.out.println(getLevel(level)+name+"..."+name.length()); } return true; }}
/*删除一个带内容的目录删除原理在windows中,删除目录从里面住外删除的 既然是从里住外删除,就需要用到递归*/import java.io.*;class RemoveDir { public static voidmain(String[] args) { removeDir(newFile("D:\\1")); } public static boolean removeDir(File dir) { if(!dir.exists()) returnfalse; File[]files=dir.listFiles(); for(Filefile:files) { if(file.isDirectory()) removeDir(file); else System.out.println(file+"...file..."+file.delete()); } System.out.println(dir+"...dir..."+dir.delete()); return true; }}
**************************************************************************************
/*练习将一个指定目录下的java文件的绝对路径,存储到一个文本文件中建立一个java文件列表清单文件 思路:1.对指定目录进行递归2.在递归过程中获取java文件绝对路径3.将这些路径存储到集合中4.将集合中的数据写入到一个文件中*/import java.io.*;import java.util.*;class JavaFileList { public static void main(String[] args) { File dir=newFile("D:\\java0217"); List<File>list=new ArrayList<File>(); fileToList(dir,list); System.out.println(list.size()); File file=newFile(dir,"javalist.txt"); listToFile(list,file.toString()); } public static void fileToList(File dir,List<File> list) { if(!dir.exists()) throw newRuntimeException("目录为空"); File[]files=dir.listFiles(); for(Filefile:files) { if(file.isDirectory()) fileToList(file,list); else { if(file.getName().endsWith(".java")) list.add(file); } } } public static void listToFile(List<File> list,String javaListFile) { BufferedWriterbufw=null; try { bufw=newBufferedWriter(new FileWriter(javaListFile)); for(Filefile:list) { bufw.write(file.getAbsolutePath()); bufw.newLine(); bufw.flush(); } } catch(IOException e) { throw newRuntimeException("写入失败"); } finally { try { if(bufw!=null) bufw.close(); } catch(IOException e) { thrownew RuntimeException("写入关闭失败"); } } }}
----------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
0 0
- 黑马程序员:递归
- 黑马程序员-递归
- 黑马程序员---递归
- 黑马程序员_递归
- 黑马程序员 — 递归
- 黑马程序员-递归
- 黑马程序员-递归思想
- 黑马程序员------递归解析
- 黑马程序员_递归
- 黑马程序员:递归
- 黑马程序员---递归小结
- 黑马程序员 递归调用心得
- 黑马程序员-递归思想,汉罗塔
- 黑马程序员_File类、递归
- 黑马程序员_递归查询
- 黑马程序员 递归+IO总结
- 黑马程序员——递归
- 黑马程序员——递归
- Android 无标题 全屏设置
- eclipse java应用程序debug模式无法启动
- eclipse智能提示快捷键Alt+/失效的解决办法
- Linux 的启动流程
- directX 9.0开发
- 黑马程序员-递归
- android菜单项添加
- Linux加载驱动"invalid module format"错误的一种可能解决办法
- Sql基础入门(二)
- VM网络无法连接--提示ethernet0无法连接到虚拟网络
- Linux 内存使用方法详细解析
- 使用Mina实现RPC调用,消息通知,广播。
- Digital Roots (题目虽水,解法不可水)
- Resource '/Servers' does not exist 问题解决