Java程序合并目录中所有文件的内容
先决条件: PrintWriter、BufferedReader。
我们有一个目录/文件夹,其中存储了 n 个文件(我们不知道文件的数量),我们想将所有文件的内容合并到一个文件中,比如说 output.txt
对于下面的示例,假设文件夹存储在路径中:F:\GeeksForGeeks
以下是步骤:
- 创建目录实例。
- 为“output.txt”创建一个 PrintWriter 对象。
- 以字符串数组的形式获取所有文件的列表。
- 循环读取 GeeksForGeeks 目录中所有文件的内容。
- 在每个文件的循环内做
- 从存储在字符串数组中的文件的名称创建文件实例。
- 创建 BufferedReader 对象以从当前文件中读取。
- 从当前文件中读取。
- 写入输出文件。
Java
// Java program to merge all files of a directory
import java.io.*;
class sample {
public static void main(String[] args) throws IOException
{
// create instance of directory
File dir = new File("F:\\GeeksForGeeks");
// create object of PrintWriter for output file
PrintWriter pw = new PrintWriter("output.txt");
// Get list of all the files in form of String Array
String[] fileNames = dir.list();
// loop for reading the contents of all the files
// in the directory GeeksForGeeks
for (String fileName : fileNames) {
System.out.println("Reading from " + fileName);
// create instance of file from Name of
// the file stored in string Array
File f = new File(dir, fileName);
// create object of BufferedReader
BufferedReader br = new BufferedReader(new FileReader(f));
pw.println("Contents of file " + fileName);
// Read from current file
String line = br.readLine();
while (line != null) {
// write to the output file
pw.println(line);
line = br.readLine();
}
pw.flush();
}
System.out.println("Reading from all files" +
" in directory " + dir.getName() + " Completed");
}
}
文件夹 F\GeeksForGeeks 的内容
GeeksForGeeks 文件夹中 3 个文件的内容:
输出文件: