File类与FileFilter接口

File

此类的定义如下:

  • public class File
    extends Object
    implements Serializable, Comparable<File>
    
  • 文件和目录路径名的抽象表示。

常见字段:

变量和类型字段描述
static StringpathSeparator与系统相关的路径分隔符,为方便起见,表示为字符串。
static charpathSeparatorChar与系统相关的路径分隔符。
static Stringseparator系统相关的默认名称分隔符,为方便起见,表示为字符串。
static charseparatorChar系统相关的默认名称分隔符。

构造方法

构造器描述
File(File parent, String child)从父抽象路径名和子路径名字符串创建新的 File实例
File(String pathname)通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例
File(String parent, String child)从父路径名字符串和子路径名字符串创建新的 File实例

常用方法

变量和类型方法描述
booleancreateNewFile()当且仅当具有此名称的文件尚不存在时,
以原子方式创建由此抽象路径名命名的新空文件。
static FilecreateTempFile(String prefix, String suffix)在默认临时文件目录中创建一个空文件,使用给定的前缀和后缀生成其名称。
static FilecreateTempFile(String prefix, String suffix, File directory)在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。
booleanexists()测试此抽象路径名表示的文件或目录是否存在
StringgetAbsolutePath()返回此抽象路径名的绝对路径名字符串。
StringgetName()返回此抽象路径名表示的文件或目录的名称。
booleanisDirectory()测试此抽象路径名表示的文件是否为目录
booleanisFile()测试此抽象路径名表示的文件是否为普通文件。``
String[]list(FilenameFilter filter)返回一个字符串数组,用于命名由此抽象路径名表示的目录中的文件和目录,以满足指定的过滤器。
String[]list()返回一个字符串数组,用于命名此抽象路径名表示的目录中的文件和目录。
File[]listFiles()返回一个抽象路径名数组,表示此抽象路径名表示的目录中的文件。
File[]listFiles(FileFilter filter)返回一个抽象路径名数组,表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
booleanmkdir()创建此抽象路径名指定的目录。
booleanmkdirs()创建此抽象路径名指定的目录,包括任何必需但不存在的父目录。

文件遍历Demo

public class listFileDemo {
    public static void main(String[] args) {
        File file = new File("e://huanglin");//遍历这个目录下的md文件
        list(file);
    }
    public static void list(File file){
        if (file.isDirectory() && file.length() > 0) { 
            // 当是文件目录时,且变为空 就 遍历
            File[] list = file.listFiles();
            for (File f : list) { 
                if (f.isFile() && f.toString().endsWith(".md")){
                    // 如果是md文件,则输出
                    System.out.println(f.getAbsolutePath());
                } else {
                    list(f);
                }
            }
        }

    }
}

允许结果:

e:\huanglin\apache-zookeeper-3.6.0-bin\README.md
e:\huanglin\apache-zookeeper-3.6.0-bin\README_packaging.md
e:\huanglin\mybatis笔记.md
e:\huanglin\springboot\springboot-04-data\HELP.md
e:\huanglin\springboot\springboot-04-data\README.md
e:\huanglin\springboot\springboot-05-security\README.md
e:\huanglin\Spring学习笔记.md
e:\huanglin\webRTC\webrtc.md
e:\huanglin\Web笔记.md

FileFilter 接口

接口定义:

  • @FunctionalInterface
    public interface FileFilter
    
  • 可以将此接口的实例传递给File类的listFiles(FileFilter)方法。

方法:

变量和类型方法描述
booleanaccept(File pathname)指定的抽象路径名是否应包含在路径名列表中

用文件过滤器FileFilter实现文件的遍历

public class listFileDemo {
    public static void main(String[] args) {
        File file = new File("e://huanglin");
        list(file);
    }
    public static void list(File file){
        if (file.isDirectory() && file.length() > 0) {
            File[] list = file.listFiles(new FileFilter() {
                @Override
                public boolean accept(File f) {
                    if (f.isDirectory() || f.isFile() && f.toString().endsWith(".md")) return true;
                    // 文件是文件夹 或者 是带有.md结尾的文件
                    return false;
                }
            });

            for ( File file1 : list) {
                if (file1.isFile()) System.out.println(file1);
                else list(file1);
            }
        }

    }
}

允许结果:

e:\huanglin\apache-zookeeper-3.6.0-bin\README.md
e:\huanglin\apache-zookeeper-3.6.0-bin\README_packaging.md
e:\huanglin\mybatis笔记.md
e:\huanglin\springboot\springboot-04-data\HELP.md
e:\huanglin\springboot\springboot-04-data\README.md
e:\huanglin\springboot\springboot-05-security\README.md
e:\huanglin\Spring学习笔记.md
e:\huanglin\webRTC\webrtc.md
e:\huanglin\Web笔记.md
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值