黑马程序员技术交流社区

标题: IO过滤器??? [打印本页]

作者: 韩秀山    时间: 2013-5-21 00:43
标题: IO过滤器???
IO过滤器是什么??他的原理是什么?怎么实现????
作者: 石贤芝    时间: 2013-5-21 19:05
本帖最后由 石贤芝 于 2013-5-21 19:14 编辑

用流技术在遍历一个目录下特定格式的文件时,可以用过滤器来实现。过滤器,顾名思义,就是用来过滤某一特定格式的文件的。

下面是一个小小的应用:

public static void listDemo() {
          File dir = new File("c:\\");  //选定c盘目录作为文件对象
          String[] names = dir.list(new SuffixFilter(".txt"));  // 用过滤器作为参数返回c盘目录下所有txt格式的文件
          for (String name : names) {
                   System.out.println(name);
          }
}


红色的那一行因为有了过滤器,所以只返回txt格式的文件名到数组中。 dir.list(new SuffixFilter(".txt")); 这句代码其实就是先进行dir.list (),然后把不是txt格式的文件给过滤掉了。

// 定义一个过滤器类,实现FilenameFilter接口,覆盖accept() 方法。
public class SuffixFilter implements FilenameFilter {
         private String suffix ;
         public SuffixFilter(String suffix) {
                  super();
                  this.suffix = suffix;
         }
         @Override
         public boolean accept(File dir, String name) {
                  return name.endsWith(suffix);  // 如果是特定格式的就返回真,否则返回假
         }

}                                                                              

































作者: 袁梦希    时间: 2013-5-21 19:18
学习了~~~~~~~~~
作者: 石贤芝    时间: 2013-5-21 19:38
袁梦希 发表于 2013-5-21 19:18
学习了~~~~~~~~~

:handshake  不敢当

签名太个性了!!!!有木有。。。
作者: 韩秀山    时间: 2013-5-21 21:10
石贤芝 发表于 2013-5-21 19:38
不敢当

签名太个性了!!!!有木有。。。

谢谢!!!
作者: breeze    时间: 2013-5-22 07:55
石贤芝 发表于 2013-5-21 19:05
用流技术在遍历一个目录下特定格式的文件时,可以用过滤器来实现。过滤器,顾名思义,就是用来过滤某一特定 ...

重写下面的方法是做什么用的?
        @Override
          public boolean accept(File dir, String name) {
                   return name.endsWith(suffix);  // 如果是特定格式的就返回真,否则返回假
          }
作者: 石贤芝    时间: 2013-5-23 07:30
breeze 发表于 2013-5-22 07:55
重写下面的方法是做什么用的?
        @Override
          public boolean accept(File dir, String nam ...

dir.list(new SuffixFilter(".txt"))   这一行在执行时会调用accept(dir, name)函数,accept函数就是负责过滤的,文件name若是以.txt结尾就是返回真,否则返回假。
作者: xiewen    时间: 2013-5-24 13:43
石贤芝 发表于 2013-5-21 19:05
用流技术在遍历一个目录下特定格式的文件时,可以用过滤器来实现。过滤器,顾名思义,就是用来过滤某一特定 ...

学习了。。。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2