趣文网 > 作文大全

Java基础加强三 递归具体案例详解 实现指定目录下文件列表输出

2020-12-02 04:15:01
相关推荐

Java递归实例用法

简单需求:

假如我们一个目录下的文件过多,而且还有多级子目录。我们要寻找某一个文件将会变得很麻烦,怎样解决这一问题呢?

分析:

我们可以将这一目录下所有的子目录或者文件全部打印并保存到文档中。下次找文件将会变得很简单。下面将用递归的方式获取一个目录下所有文件,并保存到文本文档中。

实现思路:

1.对指定的目录进行递归

2.获取递归过程所有的java文件的路径

3.将这些路径存储到集合中

4.将集合中的数据写入到一个文件中

实现代码:

package com.wusc.java;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileWriter;

import java.io.IOException;

import java.util.ArrayList;

import java.util.Iterator;

public class FileDemo {

//定义全局私有成员变量

private static ArrayList arraylist=new ArrayList();

public static void main(String[] args) {

getFiles(new File("E:javadata"));

try {

writeTo(new File("javafilenamelist.txt"));

}catch(IOException i) {

throw new RuntimeException("write fails");

}

}

//获取文件列表

public static void getFiles(File dir) {

File[] file=dir.listFiles();

arraylist.add("[path]-----"+dir.getPath());

for(int i=0;i

if(!file[i].isHidden()&&file[i].isDirectory())

getFiles(file[i]);//递归

else

//获取.java文件

if(file[i].getName().endsWith(".java"))

// 你也可以获取绝对路径+file[i].getAbsolutePath()

arraylist.add(" [file]-----"+file[i].getName());

}

}

//写入文件

public static void writeTo(File to)throws IOException {

to.createNewFile();//可不写

System.out.print(to.getAbsolutePath());

BufferedWriter bufferedwriter=new BufferedWriter(new FileWriter(to));

Iterator it=arraylist.iterator();//定义迭代器遍历集合

while(it.hasNext()) {

bufferedwriter.write(it.next());

bufferedwriter.newLine();//换行

bufferedwriter.flush();//刷新

}

bufferedwriter.close();//关资源

}

}

加载目录数据

目录1下面还有一个文件Java1.java

输出结果文件

看完相信你对Java递归有了进一步理解,如有任何疑问,可以留言评论,让大家一起来讨论学习。

欢迎关注,获得更多资料

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

玩得真高兴作文350字 考试的烦恼作文 走出舒适区作文 写挑山工的作文 一年级作文秋天的景色 作文纸条破解版 我和我的祖国500字作文 粽子作文300字 独特的我作文600字 写人的作文五百字左右 思念爸爸作文 秋天的声音作文600字 快乐成长作文500字 童年趣事作文六百字 泡温泉作文300字 人要有梦想作文 成长回眸作文700字 写最敬佩的人的作文 游百里杜鹃作文 关于真情的作文800字 男打女屁屁作文 关于24节气的作文 我是一个孝顺的孩子作文 作文同桌 姐姐作文 我与植物作文 不寻常的客人作文 校刊作文 景作文 什么是创新作文