読者です 読者をやめる 読者になる 読者になる

特定のフォルダにある特定の名前から始まるファイルだけを操作する

public static void main(String[] args) {
        //フォルダの指定
        File file = new File("C:\\Users\\User\\test");
        //#listFiles(FileFilter)を使用して特定の名前(test)から始まるファイルだけを操作対象にする
        Arrays.stream(file.listFiles(f -> f.getName().startsWith("test"))).forEach(operateFiles());
    }

    private static Consumer<? super File> operateFiles() {
        return file -> {
            //try-resources文を使用してFileオブジェクトをStream化
            try(Stream<String> lines = Files.lines(Paths.get(file.getPath()))) {
                lines.map(String::toUpperCase).forEach(System.out::println);
            } catch (Exception e) {
                e.printStackTrace();
            }
        };
    }

File#listFilesに渡すFileFilterを変えれば「ファイルの名前にある文字列が含まれる」とかにもできる。