java使用iterator遍历指定目录示例分享
可以遍历指定目录(一个或多个)及其所有子文件,用Iterator实现
package archiver.util;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
public class FileIterator implements Iterator<File>, Iterable<File> {
private Iterator<String> iterator;
private List<String> paths;
private List<File> dirs;
public FileIterator(List<String> paths) {
this.paths = new ArrayList<String>(paths);
this.dirs = new ArrayList<File>();
this.iterator = this.paths.iterator();
}
public File next() {
File file = null;
if (hasNext()) {
file = new File(iterator.next());
if (file.isDirectory()) {
dirs.add(file);
}
}
return file;
}
public boolean hasNext() {
if (!iterator.hasNext()) {
paths.clear();
for (File dir : dirs) {
for (String name : dir.list()) {
paths.add(dir.getPath()+File.separator+name);
}
}
dirs.clear();
if (paths.size() == 0) {
return false;
}
iterator = paths.iterator();
}
return true;
}
@Override
public void remove() {
throw new UnsupportedOperationException();
}
@Override
public Iterator<File> iterator() {
return this;
}
public static void main(String[] args) {
FileIterator iter = new FileIterator(Arrays.asList("."));
for (File file : iter) {
System.out.println(file);
}
}
}
相关推荐
-
Java文件操作之按行读取文件和遍历目录的方法
按行读取文件 package test; import java.io.*; import java.util.*; public class ReadTest { public static List<String> first_list; public static List<String> second_list; public ReadTest() { first_list = new LinkedList<>(); second_list = new Link
-
java 对文件夹目录进行深度遍历实例代码
java 对文件夹目录进行深度遍历实例代码 1.题目 对指定目录进行所有内容的列出(包含子目录中的内容),也可以理解为对目录进行深度遍历. 2.解题思想 从电脑中获取文件目录,建立函数对其遍历,在这个函数中需要对该目录中的每个文件进行判断,如果文件还是目录,则调用函数本身继续对其进行遍历,如果文件不是目录,则直接输出文件名.为了加强显示的效果,我们还可以建立一个getSpace函数,对其进行缩进. 需要注意的是,不要直接遍历C盘的内容,其目录层次太深,含有太多的系统级文件,容易返回为空,导致空指
-
Java遍历输出指定目录、树形结构所有文件包括子目录下的文件
下面通过一段代码介绍下Java输出指定目录.树形结构下的所有文件包括子目录中的文件的方法,并附有效果图. import java.io.File; public class ReadDirectory { // 文件所在的层数 private int fileLevel; /** * 生成输出格式 * @param name 输出的文件名或目录名 * @param level 输出的文件名或者目录名所在的层次 * @return 输出的字符串 */ public String createPri
-
Java递归 遍历目录的小例子
复制代码 代码如下: public static void main(String[] args) { File f = new File("D:\\test\\fsd"); listChids(f,0); } public static void listChids(File f,int level){ String preSrt = ""; for(int i=0;i<level;i++){ preSrt += "
-
Java函数式编程(十一):遍历目录
列出目录中的文件 用File类的list()方法可以很容易的列出目录中的所有文件的文件名.如果想要获取文件而不止是文件名的话,可以使用它的listFiles()方法.这很简单,难的是怎么去处理这个返回的列表.我们不再使用传统的冗长的外部迭代器,而是使用优雅的函数式来实遍历这个列表.这里我们还得用到JDK的新的CloseableStream接口以及一些相关的高阶函数. 下面这段代码可以列出当前目录下所有文件的名字. 复制代码 代码如下: Files.list(Paths.get(".")
-
Java使用File类遍历目录及文件实例代码
1. 构造函数 File(String args0)//使用一个表示文件或目录的路径的字符串创建一个File对象 File(URL args0)//使用一个URL对象创建File对象 File(File args0, String args1)//使用一个File对象(一般是目录)和一个文件名字符串创建File对象 File(String args0, String args1)//使用一个目录字符串和一个文件名字符串创建对象 使用File类需要注意两点: 第一,File类用于表示文件或目录的名
-
java使用iterator遍历指定目录示例分享
可以遍历指定目录(一个或多个)及其所有子文件,用Iterator实现 复制代码 代码如下: package archiver.util; import java.io.File;import java.util.ArrayList;import java.util.Arrays;import java.util.Iterator;import java.util.List; public class FileIterator implements Iterator<File>, Iterabl
-
PHP递归遍历指定目录的文件并统计文件数量的方法
本文实例讲述了PHP递归遍历指定目录的文件并统计文件数量的方法.分享给大家供大家参考.具体实现方法如下: <?php //递归函数实现遍历指定文件下的目录与文件数量 function total($dirname,&$dirnum,&$filenum){ $dir=opendir($dirname); echo readdir($dir)."<br>"; //读取当前目录文件 echo readdir($dir)."<br>&qu
-
C#遍历指定目录下所有文件的方法
本文实例讲述了C#遍历指定目录下所有文件的方法.分享给大家供大家参考.具体分析如下: 先通过DirectoryInfo打开指定的目录,然后通过GetFiles()方法读取文件夹下的所有文件 DirectoryInfo di = new DirectoryInfo(@"C:\mydir"); Console.WriteLine("Directory: {0}", di.FullName); foreach (FileInfo file in di.GetFiles()
-
Python/ArcPy遍历指定目录中的MDB文件方法
如下所示: #遍历指定目录中的MDB文件,构造FeatureClass名 >>> target_folder = 'D:\T20161202' ... file_names=('BOUAN','BOULK','BOUNT','BOUPT','CTRLK','CTRPT','HYDAN','HYDLK','HYDNT','HYDPT','PIPAN','PIPLK','PIPNT','PIPPT','RESAN','RESLK','RESNT','RESPT','ROAAN','ROALK
-
遍历指定目录,并存储目录内所有文件属性信息的php代码
项目需要,需要写一个函数,能够遍历指定目录中的所有文件,而且这个目录中的子目录也要遍历.输出文件的属性信息,并存储. 想想需求,不就是一个ls -al命令吗,实现获取相关属性就好了,再加上一个遍历OK了事. 项目过程中,便于操作,使用了json格式存储,但是也发现了一些问题.谨此记录问题及代码,便于参考. <?php define('INDEXFORMAT',"dir,name,size,perms,ower,group,ctime,mtime,atime,suffix") ;
-
java使用listIterator逆序arraylist示例分享
思路分析:要逆序遍历某个列表,首先要获得一个ListIterator对象,利用for()循环,以ListIterator类的hasNext()方法作为判断条件,通过循环执行ListIterator类的next()方法将游标定位到列表结尾,然后在另一个for循环中,以ListIterator类的hasPrevious()方法作为判断条件,通过ListIterator类的previous()方法逆序输出列表中的元素. 代码如下: 复制代码 代码如下: import java.util.ArrayLi
-
遍历指定目录下的所有目录和文件的php代码
复制代码 代码如下: <?php function listFiles($path){ $result = array(); foreach(glob($path.'\\'."*") as $item){ $result[strtolower($item)] = $item; if(is_dir($item)){ $result += listFiles($item); } } return $result; } $path = 'E:\\web\\dianle'; foreac
-
java读取excel文件并复制(copy)文件到指定目录示例
复制代码 代码如下: mport java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.List; import org.apach
-
php无限遍历文件夹示例分享
最近在能php目录操作,搞了一个目录无限遍历: 使用的函数有: isset()判断某个变量是否定义 chdir() 将当前目录改变为指定的目录. opendi()打开目录. readdir()读取目录. getcwd()获取当前目录. 还用到了for if GET传值 大概就这些东东: 下面是代码: 复制代码 代码如下: <?phpif(isset($_GET['id']))//判断是否传值{ $s=str_replace(' ','+',$_GET['id']); $s=bas
-
java使用ftp上传文件示例分享
复制代码 代码如下: import java.io.ByteArrayInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.net.SocketException; import java.text.SimpleDateFormat; import java.util.Date; import org.apache.commons.io.IOUtils; import
随机推荐
- angular使用bootstrap方法手动启动的实例代码
- Oracle中手动删除数据库教程
- asp.net String.IsNullOrEmpty 方法
- php array_map array_multisort 高效处理多维数组排序
- php中eval函数的危害与正确禁用方法
- pygame学习笔记(6):完成一个简单的游戏
- PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解
- jquery实现图片左右切换的方法
- BootStrap实现带关闭按钮功能
- 取得input元素中部分选中(selected)的值
- C#实现Winform动态添加菜单的方法
- linux下使用rsync同步目录
- 详谈Java多线程的几个常用关键字
- Android实现图文垂直跑马灯效果
- 浅析Java8新特性Lambda表达式和函数式接口
- Java使用join方法暂停当前线程
- Android仿微信朋友圈实现滚动条下拉反弹效果
- Vue完整项目构建(进阶篇)
- 利用Console来Debug的10个高级技巧汇总
- 微信小程序中如何使用flyio封装网络请求