在Java中使用FileFilter搜索文件

FileFilter 包含在Java Development Kit (JDK) 1.2 众多的附件中。他的主要作用就是检测文件是否存在。FileFilter 和他的前身FilenameFilter 唯一的不同是FileFilter 提供文件对象的访问方法,而FilenameFilter 是按照目录和文件名的方式来工作的。

例如,FileFilter 是这样的:

boolean accept(File file);

而FilenameFilter 却是以下的样子:

boolean accept(File directory, String name);

一个简单的例子是搜索特定的文件扩展名。你可以使用FilenameFilter ,但是出来的结果会让你很难判断到底是文件夹还是文件。要解决这个问题,你需要使用文件对象。也就是使用FileFilter吧。

以下是ExtensionFileFilter 的代码:

package com.generationjava.io.find;
import java.io.File;import java.io.FileFilter;
public class ExtensionFileFilter implements FileFilter {
private String extension;
public ExtensionFileFilter(String extension) {
this.extension = extension;
}
public boolean accept(File file) {
if(file.isDirectory( )) {
return false;
}
String name = file.getName( );
// find the lastint idx = name.lastIndexOf(".");
if(index == -1) {
return false;
}
 elseif(index == name.length( ) -1) {
return false;
}
 else {
return this.extension.equals(name.substring(index+1));
}
}
}

以下的例子中用到了上述的ExtensionFileFilter 代码:

...String dir = "...";
  // directory of your choiceFile file = new File(dir);
File[] files = file.listFiles(new ExtensionFileFilter("cfg"));
// files variable is now c:\*.cfg if @#dir@# is c:\// that is,
 all the files in the specified directory ending in *.cfg...

FileFilter 其实是从 javax.swing.filechooser.FileFilter派生出来的,javax.swing.filechooser.FileFilter 是使用JFileChoosers的抽象类。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索string
, 文件
, file
, extension
, java中 file使用
, filenamefilter
FileFilter
java filefilter、java filefilter用法、java file类的使用、javafileobject 使用、java file使用完 释放,以便于您获取更多的相关知识。

时间: 2024-09-15 01:08:16

在Java中使用FileFilter搜索文件的相关文章

如何在win7系统中实现精确搜索文件?

  随着win7 64位旗舰版下载电脑使用的时间越来越长,咱们win7旗舰版电脑中的文件也会变得越来越多,这个时候,如果分类不清楚的话,咱们要在win7旗舰版电脑中找到一个文件就会十分的麻烦,所以很多用户在查找文件的时候都会使用win7旗舰版系统中的搜索功能,那么如何搜索呢?一般来说,咱们会使用关键词或者是文件名,那么大家是否知道,其实,咱们还可以使用"自然语言搜索"来使搜索的结果更加精确,下面,小编就来详细的介绍一下,如何在win7旗舰版系统中实现精确搜索文件? 1.首先,咱们返回到

大神帮帮忙-java中如何获取一个文件的文件头信息

问题描述 java中如何获取一个文件的文件头信息 有没有一个方法获取一个文件的文件头.这个文件是a.exe,求教了! 解决方案 exe使用的是pe格式,参考:http://www.cnblogs.com/lzjsky/archive/2011/09/22/2184942.html 解决方案二: 所谓文件头,没有一个确切的概念,不同的文件类型,文件头的含义不同,长度不同. 如果你希望简单判断下文件类型,那么你只需要读取文件开头几个字节,这不算文件头,一般叫做文件特征. 比如exe,它开头两个字节应

请问:java中,运用属性文件的方法怎么把mysql加载到memcached中?谢谢!

问题描述 请问:java中,运用属性文件的方法怎么把mysql加载到memcached中?谢谢! 请问:运用属性文件的方法怎么把mysql加载到memcached中?谢谢! 解决方案 http://blog.csdn.net/jiedushi/article/details/6176940

使用FileFilter搜索文件

如何快速的按照特定要求找出所有文件呢?试试java.io.FileFilter 吧. FileFilter 包含在Java Development Kit (JDK) 1.2 众多的附件中.他的主要作用就是检测文件是否存在.FileFilter 和他的前身FilenameFilter 唯一的不同是FileFilter 提供文件对象的访问方法,而FilenameFilter 是按照目录和文件名的方式来工作的. 例如,FileFilter 是这样的:   boolean accept(File fi

在Java中读取写入XML文件(DEMO_004)

1.如果要将读取的XML文件,再写入另外的一个新XML文件中,首先必须新建一个和要读取相对应的beans类,通过set方法填充数据,get方法获取数据. 2.在读取XML文件的时候,需要用到ArrayList集合来存储每次从原XML文件里面读取的数据,在写入新的XML文件的时候,也要通过ArrayList集合获取要遍历的次数,同时将数据写入到新的xml文件中 3.详细代码如下: public static void main(String[] args) { try { String url =

JAVA中使用FTPClient实现文件上传下载实例代码_java

在java程序开发中,ftp用的比较多,经常打交道,比如说向FTP服务器上传文件.下载文件,本文给大家介绍如何利用jakarta commons中的FTPClient(在commons-net包中)实现上传下载文件. 一.上传文件 原理就不介绍了,大家直接看代码吧 /** * Description: 向FTP服务器上传文件 * @Version1.0 Jul 27, 2008 4:31:09 PM by 崔红保(cuihongbao@d-heaven.com)创建 * @param url F

Java中关于FileDialog产生文件选择框的问题

问题描述 我在网页上生成一个Link(这里不用html:file标签)点击这个Link以后跳转到后台的Java代码在Java代码中,用以下代码产生一个文件选择对话框Frameframe=newFrame();FileDialogdlg=newFileDialog(frame,"hello",FileDialog.LOAD);dlg.setVisible(true);我想问一下文件选择对话框是出来了为什么没有跳到网页的最前边呢而是在我打开的网页之后然后把我的网页挪开或者最小化才能看到那个

java中File.delete删除文件实例?

删除指定文件 例子 在这个例子中,它会删除名为日志文件 "c:\logfile20100131.log".  代码如下 复制代码 package com.yiibai.file;   import java.io.File;   public class DeleteFileExample {     public static void main(String[] args)     {       try{         File file = new File("c:

java中IO操作 利用文件流 过滤流对文件进行读写操作

/* 两种基本的流是:输入流(Input Stream)和输出流(Output Stream) .可从中读出一系列字节的对象称为输入流. 而能向其中写入一系列字节的对象称为输出流. System.out.println   中的 out 是 PrintStream 类对象   System类的静态成员可以向 输出流写入数据 System.in.read()     in 是InputStream类的成员 可以从键盘等输入设备读取字节数据  利用FileInputStream   FileOutp