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 文件?