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);
}
应该为你做。显然适当地改变常量
我有一个名为 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);
}
应该为你做。显然适当地改变常量