java核心编程之文件过滤类FileFilter和FilenameFilter

本文实例为大家分享了文件过滤类FileFilter和FilenameFilter,供大家参考,具体内容如下

1.FileFilter

package test;

import java.io.File;
import java.io.FileFilter;

public class FileFilterTest implements FileFilter {

  private String extension;

  public FileFilterTest(String extension) {

    this.extension = extension;
  }
  /**
   *
   */
  @Override
  public boolean accept(File pathname) {

    if(pathname.isDirectory()){
      return false;
    }

    String name = pathname.getName();
    int num = name.lastIndexOf(".");
    if(num == -1){
      return false;
    }
    if(name.length()-1 == num){
      return false;
    } else {

      return extension.equals(name.substring(num+1));
    }
  }

  public static void main(String[] args) {

    File path = new File("E:\\书籍\\java 编程");
    //获得过滤对象
    FileFilterTest ft = new FileFilterTest("pdf");

    File[] files = path.listFiles(ft);

    for (int i = 0; i < files.length; i++) {
      System.out.println(files[i].getAbsolutePath());
    } 

  }

}

2.FilenameFilter

package test;

import java.io.File;
import java.io.FilenameFilter;

public class FileNameFilterTest implements FilenameFilter {

  //判断图片是否格式是否是 gif
  private boolean isGif(String fileName){
    if(fileName.toLowerCase().endsWith(".gif")){
      return true;
    } else {
      return false;
    }

  }
  //判断图片是否格式是否是 jpg
  private boolean isJpg(String fileName){
    if(fileName.toLowerCase().endsWith(".jpg")){
      return true;
    } else {
      return false;
    }

  }
  //判断图片是否格式是否是 png
  private boolean isPng(String fileName){
    if(fileName.toLowerCase().endsWith(".png")){
      return true;
    } else {
      return false;
    }

  }

  @Override
  public boolean accept(File dir, String name) {
    return (isGif(name)||isJpg(name)||isPng(name));
  }

  public static void main(String[] args) {
    File path = new File("C:\\img");
    //获得过滤对象
    FileNameFilterTest ft = new FileNameFilterTest();

    File[] f = path.listFiles(ft);

    for (int i = 0; i < f.length; i++) {
      File file = f[i];

      System.out.println(file.getAbsolutePath());

    }
  }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Java中使用fileupload组件实现文件上传功能的实例代码

    使用fileupload组件的原因: Request对象提供了一个getInputStream()方法,通过这个方法可以读取到客户端提交过来的数据,但是由于用户可能会同时上传多个文件,在servlet中编程解析这些上传数据是一件非常麻烦的工作.为方便开发人员处理文件上传数据,Apache开源组织提供了一个用来处理表单文件上传的一个开源组件(Commons-fileupload),该组件性能优异,并且使用及其简单,可以让开发人员轻松实现web文件上传功能. 使用Commons-fileupload

  • Java File类的详解及简单实例

    Java File类的详解及简单实例 1. File():构造函数,一般是依据文件所在的指定位置来创建文件对象.  CanWrite():返回文件是否可写. CanRead():返回文件是否可读. CompareTo(File pathname):检查指定文件路径间的顺序. Delet():从文件系统内删除该文件. DeleteOnExit():程序顺利结束时从系统中删除文件. Equals(Object obj):检查特定对象的路径名是否相等. Exists():判断文件夹是否存在. GetA

  • Java IO流 File类的常用API实例

    •File类 1.只用于表示文件(目录)的信息(名称.大小等),不能用于文件内容的访问. package cn.test; import java.io.File; import java.io.IOException; public class Demo16 { public static void main(String[] args) { File file = new File("F:\\javaio"); //文件(目录)是否存在 if(!file.exists()) { /

  • File的API和常用方法详解_动力节点Java学院整理

    File 介绍 File 是"文件"和"目录路径名"的抽象表示形式. File 直接继承于Object,实现了Serializable接口和Comparable接口.实现Serializable接口,意味着File对象支持序列化操作.而实现Comparable接口,意味着File对象之间可以比较大小:File能直接被存储在有序集合(如TreeSet.TreeMap中). File 函数列表 // 静态成员 public static final String pat

  • java 在file的尾部添加数据的两种方法总结

    java 在file的尾部添加数据的两种方法总结 问题描述:   在文件的末尾追加内容 方法1:利用RandomAccessFile类  1.将randomAccessFile模式设置为rw  2将randomAccessFile移动(seek)到文件末尾  3追加数据  4关闭流 方法2:利用FileWriter类  1.将FileWriter构造方法第二个参数置为true.表示在尾部追加  2追加数据  3.关闭流 实现代码: package cn.com; import java.io.F

  • Java文件操作类 File实现代码

    1.概述 对于文件系统的访问是每个语言必须的,java提供了File类来完成对文件或者目录的创建,重命名,删除,文件列表的操作以及判读是否存在. 2.对于文件/目录的操作 操作内容包括: 1:创建对象. 2:判断是否是目录/文件. 3:判断目录或者文件是否存在. 4:修改文件名称. 5:创建文件/创建一个目录/创建所有目录. 6:查询目录下所有目录和文件8输出文件路径 7:删除文件/目录 注:已上操作非必须全部一次使用 3.相关代码 public static void main(String[

  • Java中File的实例详解

    Java中File的实例详解 File 代表文件或者目录的类 构造函数 File(File parent,String child)---代表了指定父目录下的指定的子文件或者子目录 File(String pathname)---代表了指定路径对应的文件或者目录对象 重要方法 创建 createNewFile()---只能用来创建文件,并且一次只能创建一个文件,要求文件存储的目录必须真实存在 mkdir()---只能用来创建目录,不能用来创建多层目录 mkdirs()---创建多层目录 删除 d

  • Java-文件File简单实用方法(分享)

    1.1java.io.File File用于表示文件系统中的一个文件或目录 通过File可以: 1:访问该文件或目录的属性信息(名字,大小,修改时间等) file.getName();获取文件名 file.length();获取文件长度 file.lastModified();获取文件最后一次修改时间 file.canWrite();是否可写 file.canRead();是否可读 file.isHidden();是否隐藏 2:操作文件或目录(创建,删除) 使用File创建一个新文件 File

  • java核心编程之文件过滤类FileFilter和FilenameFilter

    本文实例为大家分享了文件过滤类FileFilter和FilenameFilter,供大家参考,具体内容如下 1.FileFilter package test; import java.io.File; import java.io.FileFilter; public class FileFilterTest implements FileFilter { private String extension; public FileFilterTest(String extension) { t

  • Java核心编程之文件随机读写类RandomAccessFile详解

    本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下 1.RandomAccessFile RandomAccessFile主要用于文件内容的读写访问 2.访问模式 "r":只读方式. "rw":打开以便读取和访问,如果文件不存在则创建文件. "rws": 除了'rw'功能以外,文件内容或者元数据更新时一同写入. "rwd":除了'rw'功能以外,文件内容更新时一同写入. 3.使用案例 pack

  • Java并发编程学习之Unsafe类与LockSupport类源码详析

    一.Unsafe类的源码分析 JDK的rt.jar包中的Unsafe类提供了硬件级别的原子操作,Unsafe里面的方法都是native方法,通过使用JNI的方式来访问本地C++实现库. rt.jar 中 Unsafe 类主要函数讲解, Unsafe 类提供了硬件级别的原子操作,可以安全的直接操作内存变量,其在 JUC 源码中被广泛的使用,了解其原理为研究 JUC 源码奠定了基础. 首先我们先了解Unsafe类中主要方法的使用,如下: 1.long objectFieldOffset(Field

  • java多线程编程之使用thread类创建线程

    在Java中创建线程有两种方法:使用Thread类和使用Runnable接口.在使用Runnable接口时需要建立一个Thread实例.因此,无论是通过Thread类还是Runnable接口建立线程,都必须建立Thread类或它的子类的实例.Thread类的构造方法被重载了八次,构造方法如下: 复制代码 代码如下: public Thread( );public Thread(Runnable target);public Thread(String name);public Thread(Ru

  • Java并发编程中使用Executors类创建和管理线程的用法

    1. 类 Executors Executors类可以看做一个"工具类".援引JDK1.6 API中的介绍:   此包中所定义的 Executor.ExecutorService.ScheduledExecutorService.ThreadFactory 和 Callable 类的工厂和实用方法.此类支持以下各种方法: (1)创建并返回设置有常用配置字符串的 ExecutorService 的方法. (2)创建并返回设置有常用配置字符串的 ScheduledExecutorServi

  • Java多线程编程中使用DateFormat类

    DateFormat 类是一个非线程安全的类.javadocs 文档里面提到"Date formats是不能同步的. 我们建议为每个线程创建独立的日期格式. 如果多个线程同时访问一个日期格式,这需要在外部加上同步代码块." 以下的代码为我们展示了如何在一个线程环境里面使用DateFormat把字符串日期转换为日期对象.创建一个实例来获取日期格式会比较高效,因为系统不需要多次获取本地语言和国家. public class DateFormatTest { private final Da

  • 深入了解Java核心类库--BigDecimal和System类

    目录 BigDecimal 类 一. 概述 常用字段 常用构造方法 常用方法 System类 三个成员变量 arraycopy​(Object src, int srcPos, Object dest, int destPos, int length) 总结 BigDecimal 类 一. 概述 Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算. 开发中,如果我们需要精确计算的结果,则必须使用BigDecimal类来操作. BigDec

  • Java多线程编程中使用Condition类操作锁的方法详解

    Condition的作用是对锁进行更精确的控制.Condition中的await()方法相当于Object的wait()方法,Condition中的signal()方法相当于Object的notify()方法,Condition中的signalAll()相当于Object的notifyAll()方法.不同的是,Object中的wait(),notify(),notifyAll()方法是和"同步锁"(synchronized关键字)捆绑使用的:而Condition是需要与"互斥

  • 深入了解Java核心类库--Date,Calendar,DateFormat类

    目录 一.Date 1.1 构造方法 1.1.1 Date() 1.1.2 Date(long date) 1.2 常用方法 1.3 其他方法 二.Calendar(抽象) 2.1 获取时间 get() 2.2 设置时间 2.3 时间计算 2.4 其它方法 三.DateFormat(抽象) 3.1 构造方法 总结 一.Date Date类表示特定的时刻,精度为毫秒 Date的两个附加功能:Calendar.DateFormat Calendar类应该用于在日期和时间字段之间进行转换 DateFo

  • java 如何读取properties文件

    1.情景展示 将要访问的接口地址等常用的配置添加到properties文件中,比直接写到java类中的好处在于: 当我们需要修改相应配置时,直接修改properties文件,重启tomcat即可,避免了重新编译引用该配置的java文件,同时,也便于项目的维护. 方式一 通过spring的工具类PropertiesLoaderUtils来实现对properties文件的解析 所需jar包:spring的核心jar包,spring-core-版本号.jar import java.io.IOExce

随机推荐