Java - 如何读取同一目录中的所有文件

Posted

技术标签:

【中文标题】Java - 如何读取同一目录中的所有文件【英文标题】:Java - How to read all files in the same directory 【发布时间】:2021-02-24 21:23:28 【问题描述】:

我需要读取同一目录中的所有文件并将这些文件存储在一个列表中。所有文件都以.txt 结尾,并且没有子目录。

List<String> recipe = new ArrayList<>();
try 
    recipe = Files.readAllLines(Paths.get("gyro.txt"));

【问题讨论】:

见docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/… 看到这篇文章希望这会有所帮助***.com/questions/29939379/… 与***.com/questions/1844688/…重复 @Umair 当存在更新和更简单的东西时,您为什么要推荐使用古老而笨重的 API 的答案? 这能回答你的问题吗? How to read all files in a folder from Java? 【参考方案1】:

你可以得到一个文件数组(根据指定的文件夹),然后你可以遍历文件夹中的每个文件并添加文件中的所有字符。 请您尝试使用以下代码:

public static List<String> readFromAllFilesInDirectory(final String folderName) 
    File folder = new File(folderName);
    List<String> recipe = new ArrayList<>();
    for (final File file : Objects.requireNonNull(folder.listFiles())) 
        if (!file.isDirectory()) 
            try 
                recipe.addAll(Files.readAllLines(Paths.get(file.getPath())));
             catch (Exception e) 
            
        
    
    return recipe;


public static void main(String[] args) 
    File folder = new File("G:\\B\\1.txt");
    System.out.println(readFromAllFilesInDirectory(folder.getParent()));

【讨论】:

【参考方案2】:

尝试使用 FileNameFilter 类:Java FileNameFilter 接口具有应该实现的方法boolean accept(File dir, String name),并且每个文件都经过测试以使该方法包含在文件列表中。

File directory = new File("D://");

File[] files = directory.listFiles(new FilenameFilter() 
    public boolean accept(File dir, String name) 
        return name.toLowerCase().endsWith(".txt");
    
);
for (File file : files) 
    System.out.println(file.getAbsolutePath());

【讨论】:

以上是关于Java - 如何读取同一目录中的所有文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 python 从位于同一目录中的多个 zip 文件夹中读取 csv 文件?

如何读取多个文本文件,而仅读取同一组的所有文本文件?

java中如何获取目录中的所有文件

Java 如何读取目录下的文件内容

如何打开目录中的所有文件并将更改保存在同一文件中? [关闭]

如何从 Java jar 文件中读取资源文件?