File类的使用(一)下

简介: File类的使用(一)

七. 关于文件目录的过滤查询操作


文件目录下,查询该目录下的文件信息。


七.一 方法


image.png


其中,文件过滤, 使用的是 FileFilter


@FunctionalInterface
public interface FileFilter {
    /**
     * Tests whether or not the specified abstract pathname should be
     * included in a pathname list.
     *
     * @param  pathname  The abstract pathname to be tested
     * @return  <code>true</code> if and only if <code>pathname</code>
     *          should be included
     */
    boolean accept(File pathname);
}


这个参数 File pathname, 指的是 文件。


FilenameFilter 时


@FunctionalInterface
public interface FilenameFilter {
    /**
     * Tests if a specified file should be included in a file list.
     *
     * @param   dir    the directory in which the file was found.
     * @param   name   the name of the file.
     * @return  <code>true</code> if and only if the name should be
     * included in the file list; <code>false</code> otherwise.
     */
    boolean accept(File dir, String name);
}


File dir 这个参数 表示的是 当前目录。


name 表示的是目录下的各个文件名称。


七.二 演示


 @Test
    public void DireOperTest(){
       //是一个目录
        File file=new File("E:"+File.separator+"ideaWork"+File.separator+"Java2"+File.separator+"fileSrc");
        //只展示一级的
       String [] fileNames= file.list();
       for(String s:fileNames){
           System.out.println("文件名称:"+s);
       }
       System.out.println("***********************************");
       File[] files=file.listFiles();
       for(File f:files){
           System.out.println("文件名称:"+f.getName());
       }
       System.out.println("***********过滤操作*************");
       File[] filterFiles=file.listFiles(new FilenameFilter() {
           @Override
           public boolean accept(File dir, String name) {
              //第一个指目录文件, 第二个文件的名称。
               System.out.println("文件:"+dir.getAbsolutePath());
               System.out.println("name:"+name);
               //如果名称中包括 . 就返回 
               if(name.indexOf(".")>=0){
                   return true;
               }
               return false;
           }
       });
        System.out.println("最后过滤得到的信息1");
       for(File f:filterFiles){
           System.out.println("过滤后的文件名称:"+f.getName());
       }
        System.out.println("***********又一次过滤*************");
        File[] filter2Files=file.listFiles(new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                //指的是下面的每一个文件
                System.out.println("名称pathname:"+pathname.getAbsolutePath());
                //是文件,就返回
                if(pathname.isFile()){
                    return true;
                }
                return false;
            }
        });
        System.out.println("最后过滤得到的信息2");
        for(File f:filter2Files){
            System.out.println("过滤后的文件名称:"+f.getName());
        }
    }


控制台打印输出:


20200617080431853.png


七.三 递归显示目录下的文件


关于这递归显示目录下的文件,可以参考老蝴蝶以前写的文章: 递归查询文件目录下所有的文件(八)


八. 显示所有磁盘


八.一 方法


image.png


八.二 演示


  @Test
    public void rootTest(){
       File[] files=File.listRoots();
       for(File f:files){
           // c:\  d:\  E:\
           System.out.println("文件路径:"+f.getAbsolutePath());
       }
    }


控制台打印输出:


2020061708043937.png


九. 转换成 Path


Path 是 java 1.7 之后引入的类, 用于代替 以前的 File 类。 常常与 java.nio.file.Files 类联合使用。


九.一 方法


image.png


九.二 演示


  @Test
    public void pathClassTest(){
        File file1=new File("E:"+File.separator+"ideaWork"+File.separator+"Java2"+File.separator+"fileSrc"
                +File.separator+"Hello.txt");
        Path path=file1.toPath();
        System.out.println("输出:"+path.getFileName());
    }


控制台打印输出:


20200617080445297.png


关于 Path类和 Files 工具类,后面老蝴蝶会讲解的。


上面就是 File 类的基本操作了,必须要掌握的。


谢谢您的观看,如果喜欢,请关注我,再次感谢 !!!

相关文章
|
1月前
|
监控 C#
55.c#:file类
55.c#:file类
82 1
|
1月前
|
C#
58.c#:directory类
58.c#:directory类
90 0
|
1月前
|
Java API Windows
File 类及其方法
File 类及其方法
21 1
|
1月前
|
运维 Java Unix
File类和IO流
File类和IO流
45 0
|
10月前
File类
File类
32 0
|
10月前
|
算法
File对象和相关方法02
File对象和相关方法02
53 0
|
10月前
|
Java
File对象和相关方法01
File对象和相关方法01
43 0
|
10月前
|
存储 移动开发 Java
IO流以及File类
IO流以及File类
File类的了解和使用
File类的了解和使用
132 0
File类的了解和使用
File类的使用(一)上
File类的使用(一)
160 0
File类的使用(一)上