开课吧Java课堂之如何使用FilenameFilter
你总是希望能够限制由list( )方法返回的文件数目,使它仅返回那些与一定的文件名方式或者过滤(filter)相匹配的文件。为达到这样的目的,必须使用list( )的第二种形式:
String[ ] list(FilenameFilter FFObj)
该形式中,FFObj是一个实现FilenameFilter接口的类的对象。
FilenameFilter仅定义了一个方法,accept( )。该方法被列表中的每个文件调用一次。它的通常形式如下:
boolean accept(File directory, String filename)
当被directory 指定的目录中的文件(也就是说,那些与filename 参数匹配的文件)包含在列表中时,accept( )方法返回true ,当这些文件没有包括在列表中时,accept( )返回false。
下面显示的OnlyExt 类实现FilenameFilter接口,它被用来修饰前面的程序,限制由 list( )返回的文件名的可见度,把对象被创建时以指定扩展名结束的文件归档。
import java.io.*;
public class OnlyExt implements FilenameFilter { String ext; public OnlyExt(String ext) { this.ext = "." + ext; } public boolean accept(File dir, String name) { return name.endsWith(ext); }
}
修改过的目录列表程序显示如下。现在它只显示以.html 为扩展名的文件。
// Directory of .HTML files.
import java.io.*;
class DirListOnly { public static void main(String args[]) { String dirname = "/java"; File f1 = new File(dirname); FilenameFilter only = new OnlyExt("html"); String s[] = f1.list(only); for (int i=0; i < s.length; i++) { System.out.println(s[i]); } }
}
开课吧Java课堂之如何使用FilenameFilter相关推荐
- 开课吧Java课堂:如何使用比较函数?
下面是一个说明定制的比较函数能力的例子.该例子实现compare( )方法以便它按正常顺序的逆向进行操作.因此,它使得一个树集合按逆向的顺序进行存储. // Use a custom comparat ...
- 开课吧Java课堂:是什么是比较函数?
TreeSet和TreeMap都按排序顺序存储元素.然而,精确定义采用何种"排序顺序"的是比较函数. 通常在默认的情况下,这些类通过使用被Java称之为"自然顺序&quo ...
- 开课吧Java课堂:是什么TreeMap类
TreeMap类通过使用树实现Map接口.TreeMap提供了按排序顺序存储关键字/值对的有效手段,同时允许快速检索.应该注意的是,不像散列映射,树映射保证它的元素按照关键字升序排序. 下面的Tree ...
- 开课吧Java课堂:什么是HashMap类
HashMap类使用散列表实现Map接口.这允许一些基本操作如get( )和put( )的运行时间保持恒定,即便对大型集合,也是这样的. 下面的构造函数定义为: HashMap( ) HashMap( ...
- 开课吧Java课堂:如何将用户定义的类存储于Collection中
为了简单,类集并没有被限制为只能存储内置的对象.完全相反的是,类集的能力是它能存储任何类型的对象,包括你所创建的类的对象.例如,考虑下面的例子,在这个例子中使用LinkedList存储信箱地址. // ...
- 开课吧Java课堂:如何使用迭代函数
在通过迭代函数访问类集之前,必须得到一个迭代函数.每一个Collection类都提供一个iterator( )函数,该函数返回一个对类集头的迭代函数.通过使用这个迭代函数对象,可以访问类集中的每一个元 ...
- 开课吧Java课堂:什么是ArrayList类
ArrayList类扩展AbstractList并执行List接口.ArrayList支持可随需要而增长的动态数组.在Java中,标准数组是定长的.在数组创建之后,它们不能被加长或缩短,这也就意味着你 ...
- 开课吧Java课堂:StringBuffer全解,非常详细
StringBuffer是提供了大量的字符串功能的字符串(String)类的对等类.正如你所知,字符串(String)表示了定长,不可变的字符序列.相反,StringBuffer表示了可变长的和可写的 ...
- 开课吧Java课堂:如何利用valueOf( )方法实现数据转换
valueOf( )方法将数据的内部格式转换为可读的形式.它是一种静态方法,对于所有Java内置的类型,在字符串(String)内被重载,以便每一种类型都能被转换成字符串. valueOf( )方法还 ...
最新文章
- python中执行linux命令(调用linux命令)_Python调用Linux bash命令
- 阿里再次主办大数据世界杯, KDD Cup2020正式开赛
- 检查型异常(Checked Exception)与非检查型异常(Unchecked Exception)
- Java中resource文件夹
- void和void*详解 v2
- jvm破坏双亲委派_破坏JVM
- Mybatis非mapper代理配置
- b丅151组成的充电器电路_一文读懂uc3842组成的开关电源电路
- Linux 设备驱动的固件加载-转载
- Ubuntu 16.04 LTS深度美化!
- python矢量图_使用python制作矢量图
- EXCEL柱状图制作(三)
- 【CSS】flex布局平分三等分中间间距相等且两端对齐
- 计算机打不开硬盘,电脑硬盘打不开的原因 如何解决电脑硬盘问题
- 如何学会做一名优秀的下属
- 借鉴美团文章实现的动态线程池,已开源
- Verilog HDL基础知识
- 琐碎的知识点(xly)
- Verilog学习笔记(一)
- PHP经典算法小羊繁殖
热门文章
- [转载] Python正则表达式(含正则表达式速查表)
- [转载] python3基础:异常处理及python常见异常类型总结
- verilog状态机以及编码详解
- JavaScript中||(或)逻辑运算符注意点
- 浏览文件神器!且可以计算所有文件代码的行数!
- 《那些年啊,那些事——一个程序员的奋斗史》——81
- 数据结构上机实践第四周项目7 - 多项式求和
- 【RobotStudio学习笔记】(六)有效载荷
- mac 您没有权限打开应用程序_Mac应用程序无法打开或文件损坏的解决方法
- html如何与js链接,链接index.html client.js和server.js