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);
}
}
}
相关文章
springcloud feign服务之间调用,date类型转换错误的问题
这篇文章主要介绍了springcloud feign服务之间调用,date类型转换错误的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-03-03
详解springboot springsecuroty中的注销和权限控制问题
这篇文章主要介绍了springboot-springsecuroty 注销和权限控制,账户注销需要在SecurityConfig中加入开启注销功能的代码,权限控制要导入springsecurity和thymeleaf的整合依赖,本文通过实例代码给大家介绍的非常详细,需要的朋友参考下吧2022-03-03
解析spring事务管理@Transactional为什么要添加rollbackFor=Exception.class
这篇文章主要介绍了spring事务管理@Transactional为什么要添加rollbackFor=Exception.class,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-11-11


最新评论