当前位置 : 首页 » 文章分类 :  开发  »  Java-File

Java-File

Java 文件操作相关笔记

listFiles​(FileFilter filter)

public File[] listFiles​(FileFilter filter) 接受一个 FileFilter 文件过滤器参数
FileFilter 本身是一个函数式接口,可以直接用一个lambda表达式代替,例如:

File[] fileArray = dir.listFiles(file -> file.getName().toLowerCase().endsWith(".xlsx"));

FileFilter 源码:

package java.io;

@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);
}

java 8 lambda expression for FilenameFilter
https://stackoverflow.com/questions/29316310/java-8-lambda-expression-for-filenamefilter

java.io.File
https://docs.oracle.com/javase/9/docs/api/java/io/File.html

按文件名过滤目录中的文件列表(lambda表达式)

只列出目录中的扩展名为.xlsx的文件

private void filtFiles() {
    String fileDir = "/tmp/files/";
    File dir = new File(fileDir);
    if (!dir.exists()) {
        logger.info("Dir {} does not exist", fileDir);
        return;
    }

    File[] fileArray = dir.listFiles(file -> file.getName().toLowerCase().endsWith(".xlsx"));
    if (fileArray.length == 0) {
        logger.info("Dir {} doesn't have xlsx files", fileDir);
        return;
    }

    for (File file : fileArray) {
      System.out.println(file.getName());
    }
}

上一篇 AWS-S3使用笔记

下一篇 Apache-POI

阅读
237
阅读预计1分钟
创建日期 2019-01-04
修改日期 2019-01-04
类别
标签
百度推荐