【发布时间】:2015-02-11 01:26:21
【问题描述】:
我正在寻找一种方法来获取当前目录中所有以 .txt 结尾的文件。我在这里找到了如何做到这一点的答案https://stackoverflow.com/a/5751357/3972558 并且它有效。现在我正在审查自己的代码,但我仍然不太了解它是如何工作的,我正在尝试从中学习。
File workingDirectory = new File(System.getProperty("user.dir"));
File[] files = workingDirectory.listFiles(new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.toLowerCase().endsWith(".txt");
}
});
你怎么可能在你通常会找到参数输入的地方声明一个方法?我可能以错误的方式问我的问题,因为我不明白为什么这种语法是正确的。
具体来说,这是listFiles()的正确输入:
new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.toLowerCase().endsWith(".txt");
}
}
更新:我现在看到您确实在为FileNameFilter 接口实现accept 方法。你怎么可能在关键字new 之后实现它。
http://docs.oracle.com/javase/7/docs/api/java/io/File.html http://docs.oracle.com/javase/7/docs/api/java/io/FileFilter.html
【问题讨论】:
标签: java file parameters filter