首页 > 技术文章 > BigData11 File类 FilenameFilter过滤器过滤文件

star521 2018-02-07 10:55 原文

一.File类

1.创建File实例对象:File f  =  new File("c:/demo",);   指定抽象路径

       根据父子字符串拼接成一个File对象 : File  f =  new  File("c:/", "dog.jpg");

 

 

2. File对象创建的是目录还是文件,看调用的方法

       mkdir()创建的是目录  

  createNewFile()创建的是文件    返回值都是boolean型   是否创建成功

  

      级联创建   mkdirs() 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录

     File f6 = new File("c:/a/b/c/d/e");

     boolean bol4 = f6.mkdirs();

 3.  删除目录 ,智能删除空目录

  //删除目录(目录里没有东西)

  File f7 = new File("c:/demo");
  boolean bol1 = f7.delete();

 1 package filedemo;
 2 
 3 import java.io.File;
 4 import java.io.IOException;
 5 /*
 6  * createNewFile() //创建文件
 7           当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件
 8  * mkdir() //创建文件夹
 9           创建此抽象路径名指定的目录
10    mkdirs() //级联创建
11           创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
12    delete() 
13           删除此抽象路径名表示的文件或目录(只能删空文件夹)   不进回收站    
14      
15  */
16 public class FileDemo {
17     public static void main(String[] args) throws IOException {
18         //根据路径创建文件对象
19         //File f1 = new File("c:\\dog.jpg");
20 //        File f1 = new File("c:/dog.jpg");
21         
22         //根据父子字符串拼接成一个file对象
23 //        File f2 = new File("c:/","dog.jpg");
24         
25         //根据已经存在的file对象和子字符串构建file对象
26         File f3 = new File("c:/demo");
27         //File f4 = new File(f3,"dog110txt");
28         
29         //创建文件createNewFile()
30         File f4 = new File(f3,"hello.txt");
31         boolean bol = f4.createNewFile();
32         System.out.println(bol);//创建成功打印true,如果已经存在,不能创建
33         
34         //创建目录mkdir()
35 //        File f5 = new File("c:/08.txt");
36 ////    boolean bol = f5.mkdir();
37         //创建文件createNewFile()
38     //    boolean bol = f5.createNewFile();
39     //    System.out.println(bol);
40         
41         //创建文件夹,父目录父目录不存在,创建返回值false
42          // 创建文件 父目录不存在,报错
43         File f6 = new File("c:/a/b/c/d/e");
44         //boolean bol4 = f6.mkdir();
45         
46         //级联创建mkdirs() 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录
47         boolean bol4 = f6.mkdirs();
48         System.out.println(bol4);
49 
50         
51 //        File f = new File("c:/06/gog.jpg");
52 //        boolean bol  =  f.delete();
53         
54         //删除目录(目录里没有东西)
55         File f7 = new File("c:/demo");
56         boolean bol1 = f7.delete();
57         System.out.println(bol1);
58     }
59 }
File类 文件 目录的创建 删除

 1 package filedemo;
 2 
 3 import java.io.File;
 4 import java.io.IOException;
 5 import java.util.Date;
 6 /*
 7  * createNewFile() //创建文件
 8           当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件
 9  * mkdir() //创建文件夹
10           创建此抽象路径名指定的目录
11    mkdirs() //级联创建
12           创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
13    delete() 
14           删除此抽象路径名表示的文件或目录(只能删空文件夹)   不进回收站    
15      
16  */
17 public class FileDemo3 {
18     public static void main(String[] args) throws IOException {
19         //根据路径创建文件对象
20         //lastModified()  文件最后修改日期 
21         File f =  new File ("c:/demo");
22         System.out.println(new  Date(f.lastModified()));
23         System.out.println(f.length());
24         System.out.println(f.getName());
25         System.out.println(f.getPath());
26         System.out.println(f.getParent());
27         System.out.println(f.getAbsolutePath());
28         
29     }
30 }

FilenameFilter 实现此接口的类实例可用于过滤器文件名。

 

package filedemo;

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

/*
 *FilenameFilter 实现此接口的类实例可用于过滤器文件名。
 *
 * 获取某个盘符下的指定类型的文件信息
    例:获取c盘下的所有jpg图片信息:大小,文件名

        分析:
            1.首先获取到c盘下所有的file对象
            2.遍历这个数组,把符合条件的文件找到(图片:首先它是一个文件,其次它的文件名的结尾是".jpg")
                for(){
                    files[i] .isFile() && files[i].getName().endsWith(".jpg")
                }
            3.输出它的信息即可
 */
public class FileDemo5 {

    public static void main(String[] args) {
        //封装一个盘符成file对象
        File f = new File("c:/");
        
        //获取盘符下所有文件组成的数组
//        File[] files = f.listFiles();
//        //遍历
//        for (File file : files) {
//            if(file.isFile() && file.getName().endsWith(".jpg")){
//                System.out.println("文件名是: "+file.getName() +",大小是: " + file.length()+"字节");
//            }
//        }
        
        //FilenameFilter 接口   方法accept()  过滤器文件名
        String[] files = f.list(new FilenameFilter() {
            
            @Override
            public boolean accept(File dir, String name) {
                //根据传递的参数构建一个file对象
                File file = new File(dir,name);
                //对这个对象进行判断
                if(file.isFile() && name.endsWith(".jpg")){
                    return true;
                }
                return false;
            }
        });
        
        
        //遍历
        for (String file : files) {
            File file2 = new File("c:/",file);
            System.out.println(file2.getName()+","+file2.length());
        }
    }

}
FilenameFilter过滤器

 

 1 package demo2;
 2 
 3 import java.io.File;
 4 
 5 /*
 6  * 批量更改某个文件夹下的文件名
 7     1.去掉某些标志
 8     c:/小说
 9     1.封装file对象
10     2.得到这个file对象下所有的子文件的file数组
11     3.遍历数组,改名
12  */
13 public class FileRenameDemo {
14 
15     public static void main(String[] args) {
16         File folder = new File("c:/小说");
17         File[] arr = folder.listFiles();
18         
19         for (File file : arr) {
20             String oldName = file.getName();//得到每个文件的名字
21             int index = oldName.indexOf("_");//找到所中符号的索引
22             String newName = oldName.substring(index + 1);//字符串剪切
23             //把修改完的名字和路径连起来,创建file对象
24             File f2 = new File(folder,newName);
25             
26             //将file重命名成f2的新的名字的格式
27             file.renameTo(f2);
28         }
29         
30         
31 
32     }
33 
34 }
批量修改文件名字

 

 

 

  

推荐阅读