黑马程序员技术交流社区
标题:
用递归的方法打印出D盘下的所有目录
[打印本页]
作者:
张胜格
时间:
2012-12-31 10:19
标题:
用递归的方法打印出D盘下的所有目录
亲们,这是我的方法,你们有更好的吗?交流下。
public class Demo
{
public static void main(String... args) {
//D:\java
File f = new File("D:"+File.separator+"java");
fun(f);
}
public static void fun(File name) {
File[] farr = name.listFiles();
for(int i = 0; i < farr.length;i++) {
if(farr[i].isDirectory()) {
System.out.println(farr[i].getName()+"目录下:");
fun(farr[i]);
System.out.println("");
} else {
System.out.println(farr[i].getName());
}
}
}
}
作者:
王玮
时间:
2012-12-31 10:30
这个 已经很符合要求了 递归也使了。使用递归了就减少了很多代码量,递归思想也是使用分治算法的条件的其中一方面。
作者:
嘿嘿小学徒
时间:
2012-12-31 14:50
本帖最后由 嘿嘿小学徒 于 2014-2-27 09:33 编辑
复制代码
import java.util.Scanner;
import java.io.File;
import java.io.IOException;
public class FileDemo4{
public static void main(String ...args){
/**
* @param 黑马程序员
* @author 高一航
*/
Scanner in=new Scanner(System.in);
System.out.println("Please input a directory name ..");
String path=in.nextLine();
File file=new File(path);
if(!file.isDirectory()){
System.out.println("please modify the name of the directory");
}else{
fun(file);
}
}
public static void fun(File file){
if(file.isFile()){
System.out.println(file.getName());
}else{
for(File tempFile:file.listFiles()){
System.out.println("----------"+file.getName()+"----------");
fun(tempFile);
}
}
}
}
复制代码
这是我的!分享下^_^ 学完向老师IO那一章节的时候写的!
把循环嵌套的方法单独拿出来,思路清晰,效率更高~
我觉得学程序 一定要enjoy, 编一些自己用的到的好玩的小程序,知识掌握的更牢固~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2