java递归读取某个文件夹下的名为test.txt的所有文件,并将这些文件内容读取出来写入result.txt文件,用---分割不同文件内容
时间: 2024-04-13 19:30:25 浏览: 91
2.指定一个路径,将其下面(含子文件夹中)的以".txt"结尾的文件移动到指定的另一个路径下;
你可以使用递归方法来实现读取某个文件夹下所有名为`test.txt`的文件,并将它们的内容写入到`result.txt`文件中,使用`---`分割不同文件内容。下面是一个Java示例代码:
```java
import java.io.*;
public class FileUtil {
public static void main(String[] args) {
String folderPath = "path/to/folder";
String resultFilePath = "path/to/result.txt";
File folder = new File(folderPath);
File resultFile = new File(resultFilePath);
if (!folder.exists() || !folder.isDirectory()) {
System.out.println("指定的文件夹路径无效!");
return;
}
try {
FileWriter writer = new FileWriter(resultFile);
readFilesInFolder(folder, writer);
writer.close();
System.out.println("文件内容已成功写入 result.txt 文件!");
} catch (IOException e) {
System.out.println("写入文件时出错:" + e.getMessage());
}
}
private static void readFilesInFolder(File folder, FileWriter writer) throws IOException {
File[] files = folder.listFiles();
if (files != null) {
for (File file : files) {
if (file.isDirectory()) {
readFilesInFolder(file, writer);
} else if (file.isFile() && file.getName().equals("test.txt")) {
writer.write("---\n");
writer.write("File: " + file.getAbsolutePath() + "\n");
writer.write("---\n");
BufferedReader reader = new BufferedReader(new FileReader(file));
String line;
while ((line = reader.readLine()) != null) {
writer.write(line + "\n");
}
reader.close();
}
}
}
}
}
```
在这个示例代码中,你需要修改`folderPath`和`resultFilePath`变量的值为实际的文件夹路径和要写入的结果文件路径。然后,程序会递归地遍历文件夹中的文件,找到名为`test.txt`的文件,并将其内容写入到`result.txt`文件中,使用`---`分割不同文件的内容。
请确保你有适当的读写权限,并根据需要进行异常处理。希望这个示例能满足你的需求。如有疑问,请随时提问。
阅读全文