有人问及一个用java列举某个文件夹下所有的文件或者目录编程题。结果他不加思索的写了十几行代码,就搞定了,结果面试官说等通知,直到最后都没通知他,我猜想出题人的最终想法是看如何封装代码,如何灵活使用丰富的API。
/*
* @(#)FileEnumerator.java June 11, 2010
*
* Copyright 2009 ... Shanghai, Inc. All rights reserved.
*/
package com.lab.basic;
import java.io.File;
import java.io.FileFilter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* List all directory or file.
*
* @author nick...@gmail.com
* @version May 19, 2010 3:22:48 PM
*/
public class FileEnumerator {
private File file;
public enum Type {
ALL, DIRECTORY, FILE;
};
private List<File> fileList = new ArrayList<File>();
public FileEnumerator(File file) {
this.file = file;
}
public List<File> listFile() {
return listFile(Type.ALL);
}
public List<File> listFile(Type type) {
fileList
.addAll(Arrays.asList(file.listFiles(new FileTypeFilter(type))));
return fileList;
}
private class FileTypeFilter implements FileFilter {
private Type type;
private FileTypeFilter(Type type) {
this.type = type;
}
public boolean accept(File file) {
deepLoop(file);
if (type.equals(Type.ALL)) {
return true;
}
if (type.equals(Type.DIRECTORY)) {
return file.isDirectory();
}
return file.isFile();
}
private void deepLoop(File file) {
if (file.isDirectory()) {
fileList.addAll(Arrays.asList(file
.listFiles(new FileTypeFilter(type))));
}
}
}
}
原帖地址: http://lavasoft.blog.51cto.com/62575/286787
–end–
分享到:
相关推荐
前端面试题:前端框架面试题大全; 前端面试题:前端框架面试题大全; 前端面试题:前端框架面试题大全; 前端面试题:前端框架面试题大全; 前端面试题:前端框架面试题大全; 前端面试题:前端框架面试题大全; ...
面试题22:组织WAV文件头,并解析WAV格式的各项信息 面试题23:计算学生不及格的人数打印他们的性别、姓名和成绩 面试题24:结构体内存对齐问题 3.6 C和C++的区别 面试题25:关键字static在C和C++中的区别 面试题26...
面试高频算法题总结-剑指Offer题解,主要包含: 数据结构 数组 字符串 链表 栈和队列 二叉树 图 堆 线段树 字典树 单调栈 算法 二分查找 排序 递归 动态规划 分治 记忆化搜索 贪心 回溯 位运算 数学 设计 其他 共66...
大数据面试题V3.0完成了。共523道题,679页,46w+字,来源于牛客870+篇面经。 主要分为以下几部分: Hadoop面试题:100道 Zookeeper面试题:21道 Hive面试题:47道 Flume面试题:11道 Kafka面试题:59到 HBase面试题...
面试题包含了不同技术层面的面试问题,同时也能对一些没有面试开发经验的小白给予不可估量的包装, 让你的薪水绝对翻倍, 本人亲试有效.Java面试题84集、java面试专属及面试必问课程,所有的面试题有视屏讲解, 解答方案....
Java面试题48.struts2的执行流程或者struts2的原理 Java面试题49.Struts2的拦截器是什么 Java面试题50.Spring MVC的执行流程 Java面试题51.SpringMVC和Struts2的不同 Java面试题52.简单介绍一下Spring或者Spring的两...
Java面试题58:hibernate的缓存.mp4
公务员考试面试题集锦:面试通关300题精解.pdf
Java面试题63:怎么操作linux服务器.mp4
Java面试题69:选择合适的索引.mp4
Java面试题79:redis数据淘汰机制.mp4
Java面试题73:数据库优化之缓存.mp4
Java面试题72:数据库的读写分离.mp4
Java面试题71:数据库优化之分表.mp4
Java面试题77:redis的使用场景.mp4
公务员考试面试题集锦:面试通关300题精解参考.pdf
公务员考试面试题集锦:面试通关300题精解借鉴.pdf
Java面试题74:sql语句优化小技巧.mp4
Java面试题70:使用索引的一些技巧.mp4
Java面试题68:选择合适的数据库引擎.mp4