Java 8:如何将一个目录中写成一个TXT文件的文件从一个目录复制到另一个目录?

Java 8: How to copy files written in a list to a TXT file from one directory to another directory?

我有一个名为 small_reports.txt 的简单文本文件,如下所示:

report_2021_05_02.csv
report_2021_05_05.csv
report_2021_06_08.csv
report_2021_06_25.csv
report_2021_07_02.csv

这份报告是用我的 java 代码生成的,并从目录 /work/dir1/reports 中获取这些文件中的每一个,并将它们写入文件 combined_reports.txt,然后将 txt 文件放回原处进入 /work/dir1/reports.

我的问题是,对于 small_reports.txt 中的每一行,在 /work/dir1/reports 中找到相同的文件(行),然后将它们复制到名为 /work/dir1/smallreports?[=21 的新目录中=]

使用 Java 8 & NIO(这真的很有帮助而且很好)我试过了:

Path source = Paths.get("/work/dir1/reports/combined_reports.txt");
Path target = Paths.get("/work/dir1/smallreports/", "combined_reports.txt");
        
if (Files.notExists(target) && target != null) {
    Files.createDirectories(Paths.get(target.toString()));
}
Files.copy(source, target, StandardCopyOption.REPLACE_EXISTING);

但这只是将实际的 txt 文件 combined_reports.txt 复制到新目录中,而不是像我想的那样复制里面的内容。

final String SOURCE_DIR = "/tmp";
final String TARGET_DIR = "/tmp/root/delme";
List<String> csvFileNames = Files.readAllLines(FileSystems.getDefault().getPath("small_reports.txt"), Charset.forName("UTF-8"));

for (String csvFileName : csvFileNames) {
    Path source = Paths.get(SOURCE_DIR, csvFileName);
    Path target = Paths.get(TARGET_DIR, csvFileName);
    if (Files.notExists(target) && target != null) {
        Files.createDirectories(Paths.get(target.toString()));
    }
    Files.copy(source, target, StandardCopyOption.REPLACE_EXISTING);
}

应该为你做。显然适当地改变常量