有人问及一个用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–
分享到:
相关推荐
python编程老师面试题_python面试题五:Python编程
华为面试试题精华:C语言描述 华为面试试题精华:C语言描述 华为面试试题精华:C语言描述
Java面试题集锦6:华为面试题 管理资料.pdfJava面试题集锦6:华为面试题 管理资料.pdfJava面试题集锦6:华为面试题 管理资料.pdfJava面试题集锦6:华为面试题 管理资料.pdfJava面试题集锦6:华为面试题 管理资料.pdf...
面试题22:组织WAV文件头,并解析WAV格式的各项信息 面试题23:计算学生不及格的人数打印他们的性别、姓名和成绩 面试题24:结构体内存对齐问题 3.6 C和C++的区别 面试题25:关键字static在C和C++中的区别 面试题26...
腾讯校园招聘历年经典面试题汇总:前端岗!
资源包含了大部分的框架面试题如:hibernate Spring Strust 等当前主流应用框架
大数据面试题V3.0完成了。共523道题,679页,46w+字,来源于牛客870+篇面经。 主要分为以下几部分: Hadoop面试题:100道 Zookeeper面试题:21道 Hive面试题:47道 Flume面试题:11道 Kafka面试题:59到 HBase面试题...
微服务架构面试题系列:Dubbo+Spring Boot+Spring Cloud+Nginx+ActiveMQ+RabbitMQ+Kafka
面试题包含了不同技术层面的面试问题,同时也能对一些没有面试开发经验的小白给予不可估量的包装, 让你的薪水绝对翻倍, 本人亲试有效.Java面试题84集、java面试专属及面试必问课程,所有的面试题有视屏讲解, 解答方案....
面试题总结:数组和链表的区别 数组和链表.pdf
Java面试题48.struts2的执行流程或者struts2的原理 Java面试题49.Struts2的拦截器是什么 Java面试题50.Spring MVC的执行流程 Java面试题51.SpringMVC和Struts2的不同 Java面试题52.简单介绍一下Spring或者Spring的两...
JAVA面试题总汇:j2ee面试知识.pdf
JAVA面试题JAVA面试题JAVA面试题JAVA面试题JAVA面试题JAVA面试题
Java面试题58:hibernate的缓存.mp4
开源框架面试题系列:Spring+SpringMVC+MyBatis。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
公务员考试面试题集锦:面试通关300题精解.pdf
Java面试题69:选择合适的索引.mp4
Java面试题63:怎么操作linux服务器.mp4
Java面试题79:redis数据淘汰机制.mp4