A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© outsider1020 中级黑马   /  2014-12-23 11:10  /  1271 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class fileDemo1 {
         public static void main(String [] args ) {
                 File file= new File("d:" +File. separator+"own.txt" );
                 File file= new File("d:\\own.txt" );
         //     File file=new File("d:/own.txt");Java程序支持将斜线当成平台无关的路径分隔符
                 if (file. exists()) {
                         System .out. println("文件已存在" );
                         file .delete() ;
                         System .out. println("文件已删除" );
                 }else{
                         try {
                                file .createNewFile() ;
                         } catch (IOException e) {
                                e .printStackTrace() ;
                         }
                 }
}
//递归查找指定文件是否存在
         private static void list(File f) {
                 //判断给定文件是否为空
                 if (f== null) {
                         return;
                 }
                 //如果文件不为空,判断是否是目录
                 if (f. isDirectory()) {
                        File [] fs =f. listFiles();
                         for (File file : fs ) {
                                 list(file );
                         }
                 }else{
                         //判断文件是否是需要查找的文件
                        String name=f .getAbsolutePath() ;
                         if (name. endsWith(".exe" )) {
                                System .out. println(name );
                         }
                 }
使用过滤器来查找指定文件:
     FileFilter与FilenameFilter二者是相似的
(1)自定义过滤器来实现FileFilter接口,实现其accept()方法即可,在此方法中创建过滤器的过滤规则
//过滤掉指定路径下的.exe文件
       import java. io.File ;
     import java. io.FileFilter ;

public class fileDemo4 {
         public static void main(String [] args ) {
                File file=new File ("d:"+ File.separator +"soft") ;//
File[] f=File.listFiles(FileFilter filter)
          返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。文件名过滤器作为参数
                File [] ff =file. listFiles(new OwnFilter()) ;
                System .out. println("文件的数量是:" +ff. length);
                 for (File file2 : ff ) {
                        System .out. println(file2 .getName()) ;
                 }

         }

}
class OwnFilter implements FileFilter {
         public boolean accept( File pathname) {
          //FileFilter的accept(File pathname)方法,该方法将依次对指定File的所有子目录或者文件进行迭代,如果该方法返回true,则          list()方法会列出该子目录或者文件
                 if (pathname. getName(). indexOf(".exe" )==-1 ) {
                         return true ;
                 }
                System .out. println("OwnFilter.accept()......" +pathname. getName());
                 return false ;
         }
        
}
(2)自定义过滤器来实现FilenameFilter接口,实现其accept()方法即可,在此方法中创建过滤器的过滤规则
import java. io.File ;
import java. io.FilenameFilter ;

public class fileDemo3 {
         public static void main(String [] args ) {
                File file=new File (".") ;
                String [] nameList =file. list(new MyFilenameFilter()) ;
                 for (String string : nameList ) {
                        System .out. println(string );
                 }
         }

}
//定义自己的FilenameFilter实现类
class MyFilenameFilter implements FilenameFilter {
//FileFilter的accept(File pathname)方法,该方法将依次对指定File的所有子目录或者文件进行迭代,如果该方法返回true,则          list()方法会列出该子目录或者文件
         public boolean accept( File dir, String name) {
                 //如果文件名以.java结尾,或者文件对应一个路径即文件是一个目录,则返回true
                 return name. endsWith(".java" ) || new File(name ).isDirectory ();
         }
        
}

评分

参与人数 1技术分 +2 收起 理由
杨佳名 + 2 赞一个!

查看全部评分

2 个回复

倒序浏览
总结的不错,赞一个
回复 使用道具 举报
后悔药 发表于 2014-12-23 11:11
总结的不错,赞一个

Thank you 思密达!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马