Java Files.list教程

Java Files.list 教程显示了如何使用Files.list列出 Java 中的文件。

Files.list返回目录元素的延迟填充流。 该列表不是递归的。

流的元素是Path对象。

Files.list当前目录

第一个示例列出了当前目录。

FilesListEx.java

package com.zetcode;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

public class FilesListEx {

    public static void main(String[] args) throws IOException {

        Files.list(Paths.get("."))
                .forEach(path -> System.out.println(path));
    }
}

点号代表当前的工作目录。 我们使用Paths.get()获得路径对象。

Files.list目录

以下示例列出了用户主目录中的目录。

FilesListEx2.java

package com.zetcode;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;

public class FilesListEx2 {

    public static void main(String[] args) throws IOException {

        var homeDir = System.getProperty("user.home");

        Files.list(new File(homeDir).toPath())
                .filter(path -> path.toFile().isDirectory())
                .forEach(System.out::println);
    }
}

我们使用toFile()将路径对象转换为File并调用isDirectory()方法。 用filter()过滤流。

Files.list按文件扩展名

下一个程序列出了所有 PDF 文件。

FilesListEx3.java

package com.zetcode;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

public class FilesListEx3 {

    public static void main(String[] args) throws IOException {

        var homeDir = System.getProperty("user.home")
                + System.getProperty("file.separator") + "Downloads";

        Files.list(Paths.get(homeDir)).filter(path -> path.toString().endsWith(".pdf"))
                .forEach(System.out::println);
    }
}

该程序将在 Downloads 目录中列出 PDF 文件。 路径对象被转换为字符串,我们在字符串上调用endsWith()以检查其是否以pdf扩展名结尾。

Files.list计数文件

我们计算 PDF 文件的数量。

FilesListEx4.java

package com.zetcode;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

public class FilesListEx4 {

    public static void main(String[] args) throws IOException {

        var homeDir = System.getProperty("user.home")
                + System.getProperty("file.separator") + "Downloads";

        var nOfPdfFiles = Files.list(Paths.get(homeDir)).filter(path -> path.toString()
                .endsWith(".pdf")).count();

        System.out.printf("There are %d PDF files", nOfPdfFiles);
    }
}

文件数由count()确定。

在本教程中,我们使用Files.list列出目录内容。

赞(1)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

Java 教程