22-IO流-38-IO流(File对象-常见功能-过滤器)
2015-08-11 16:11
525 查看
package bean; import java.io.File; import javax.swing.filechooser.FileFilter; public class FilterByHidden implements FileFilter { public boolean accept(File pathname) { return pathname.isHidden(); } }
=========================分割线==================================
package bean;
import java.io.File;
import java.io.FilenameFilter;
public class FilterByTxt implements FilenameFilter{
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".txt");//返回所有文件名称.txt结尾的文件
/**
* 查找API,发现String类有如下方法:
* boolean endsWith(String suffix) 测试此字符串是否以指定的后缀结束
*/
}
}
=========================分割线==================================
/* * 【需求】 * 既然上一个视频中list是获取所有文件及文件夹名称,那么现在只需要获取所有扩展名为txt的文件,其余都不要。 * * 【File中的方法】 * String[] list(FilenameFilter filter) * 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录。 * 也就是说,通过传递一个过滤器给list,从而只获取满足该过滤器的文件。 * * 其中FilenameFileter为接口,其内就一个方法: * boolean accept(File dir,String name):测试指定文件是否应该包含在某一文件列表中。 * 返回:当且仅当该名称应该包含在文件列表中时返回 true;否则返回 false。 * */ package demo; import java.io.File; import bean.FilterByHidden; import bean.FilterByTxt; public class Demo { public static void main(String[] args) { // listDemo(); listDemo2(); } public static void listDemo() { File dir = new File("c:\\"); String[] names = dir.list(new FilterByTxt());//将过滤器传入,只保留符合条件的文件名称 for(String name:names){ System.out.println(name); } } public static void listDemo2() { /** * 【最常用的方法】 * (1) File[] listFiles() * 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。(直接拿文件,比上面拿名称好) * (2) File[] listFiles(FilenameFilter filter) * 返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。(加上以文件名过滤的过滤器) * (3) File[] listFiles(FileFilter filter) * 返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。(加上以文件过滤的过滤器) */ File dir = new File("c:\\"); // File[] files = dir.listFiles(); // for(File file:files){ // System.out.println(file);//输出的全是c盘下所有文件的路径名 // } File[] files = dir.listFiles(new FilterByHidden()); for(File file:files){ System.out.println(file);//输出的全是c盘下所有隐藏文件 } } }
相关文章推荐
- CSS Display属性与盒模型
- mongoDB知识汇总
- Jsp与servlet之间页面跳转及参数传递实例(转)
- android自定义控件属性详解
- POJ 1789 Truck History(最小生成树--prime)
- nyoj8 一种排序
- Mac环境下svn的使用
- android minSdkVersion和targetSdkVersion含义
- Git下载FFmpeg最新代码
- 22-IO流-36-IO流(File对象-常见功能-系统根目录和容量获取)
- 22-IO流-37-IO流(File对象-常见功能-获取目录内容)
- Visual C#2010学习笔记五之变量和常量的使用
- 常见Linux命令
- 打勾显示输入的密码 --EditText与setTransformationMethod
- PHP遍历目录下的所有文件
- mousebutton和mousebuttons使用的区别
- 24点运算
- poj 3715 Blue and Red(二分图最大匹配+字典序输出)
- VS2013连接TeamFunction报错
- 22-IO流-35-IO流(File对象-常见功能-重命名)