遍历所有文件
来源:互联网 发布:淘宝美工主管岗位职责 编辑:程序博客网 时间:2024/04/28 09:11
package cn.itcast.io.a.file;import java.io.File;import java.util.LinkedList;public class GetAllFileByQueue {/** * @param args */public static void main(String[] args) {/* * 遍历文件夹,不用递归咋办? * 思路: * 1,可以通过对每一个目录进行for循环,但是目录层级很多,for会死掉。 * 2,每遍历到一个目录,不对其进行遍历,而是先临时存储起来。 相当于把所有目录(无论同级不同级)都存储起来。 * 3,遍历容器时取到就是目录,然后对目录遍历即可。 * 4,从容器中取到目录遍历时发现内部还有目录,一样将这些目录存储到容器中。 * 5,只要不断的遍历这个容器就哦了。 * * 通过图解:发现这个容器只要是一个简单的队列就可以解决这个问题。 */File dir = new File("E:\\test");System.out.println(dir.getName());Queue<File> queue = new Queue<File>();// 1,对dir进行当前目录的遍历。File[] files = dir.listFiles();for (File file : files) {// 2, 如果有子目录,存储到队列中。if (file.isDirectory()) {queue.myAdd(file);} else {System.out.println(file.getName());}}System.out.println("---------------------");//3,遍历队列容器。因为子目录都在队列中。while(!queue.isNull()){File subDir = queue.myGet();//从队列中取出子目录。System.out.println(subDir.getName());//4,遍历子目录。File[] subFiles = subDir.listFiles();for(File subFile : subFiles){if(subFile.isDirectory()){//如果子目录中还有子目录,继续存储到队列中。queue.myAdd(subFile);}else{System.out.println(subFile.getName());}}}}}/** * 队列结构。先进先出。 */class Queue<E> {private LinkedList<E> link;/** * 提供了构造队列对象的构造器。 */public Queue() {link = new LinkedList<E>();}/** * 添加元素的方法。 */public void myAdd(E obj) {link.addFirst(obj);}/** * 获取的方法。 */public E myGet() {return link.removeLast();}/** * 判断队列是否有元素。 */public boolean isNull() {return link.isEmpty();}}
0 0
- 遍历本地所有文件
- 遍历目录所有文件
- 遍历所有文件
- 遍历所有磁盘文件
- grep遍历所有文件
- Shell遍历所有文件
- 遍历所有文件
- 遍历目录所有文件
- 遍历文件下所有文件
- 遍历目录下所有所有文件
- 遍历目录下所有文件
- 遍历指写盘符下的所有文件
- 遍历文件夹所有文件(示例)
- 遍历文件夹下面所有文件
- 遍历操作系统中的所有文件
- c++ 遍历文件夹所有文件
- 遍历文件夹下所有文件
- win 遍历所有文件 FindFirstFile
- 深入理解c指针-内存管理
- 初次运行mapreduce作业报空指针异常
- Javascript中apply、call、bind
- 网络请求解析json的方式HttpClient
- javaweb后台程序如何查找bug
- 遍历所有文件
- 论界面设计与用户需求
- oracle执行计划
- 超快和轻松为RecyclerView添加头部:RecyclerViewHeader
- 【JZOJ4711】【NOIP2016提高A组模拟8.17】Binary
- 网络层---计算机网络
- *最小环权值-floyd
- Heritrix配置
- tomcat在window上的简单部署