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

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

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

【问题讨论】:

标签: java string list file arraylist


【解决方案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());
    }
    

    【讨论】:

      猜你喜欢
      • 2015-07-08
      • 2021-12-15
      • 1970-01-01
      • 2013-12-02
      • 1970-01-01
      • 2021-11-06
      • 1970-01-01
      • 1970-01-01
      • 2015-07-03
      相关资源
      最近更新 更多