手机
当前位置:查字典教程网 >编程开发 >Java >java使用iterator遍历指定目录示例分享
java使用iterator遍历指定目录示例分享
摘要:可以遍历指定目录(一个或多个)及其所有子文件,用Iterator实现复制代码代码如下:packagearchiver.util;import...

可以遍历指定目录(一个或多个)及其所有子文件,用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使用iterator遍历指定目录示例分享】相关文章:

使用JAVA判断凸多边形的示例代码

java数组遍历 删除remove(示例代码)

在java中使用dom4j解析xml(示例代码)

java制作复制文件工具代码分享

java使用任务架构执行任务调度示例

java nio基础使用示例

java数字图像处理基础使用imageio写图像文件示例

java集合求和最大值最小值示例分享

在java中使用dom解析xml的示例分析

java jni调用c函数实例分享(java调用c函数)

精品推荐
分类导航