如何使用Java将文件夹中的所有文件读取到单个文件?
File类的listFiles()方法返回一个数组,其中包含当前(File)对象表示的路径中所有文件(和目录)的对象(抽象路径)。
要将文件夹中所有文件的内容读入单个文件-
通过将所需的文件路径作为参数传递来创建文件对象。
使用Scanner或任何其他阅读器读取每个文件的内容。
将读取的内容附加到StringBuffer中。
将StringBuffer内容写入所需的输出文件。
示例
import java.io.DataOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.Scanner; public class Test { public static void main(String args[]) throws IOException { //为目录创建一个File对象 File directoryPath = new File("D:\\SampleDirectory"); //所有文件和目录的列表 File filesList[] = directoryPath.listFiles(); System.out.println("指定目录中的文件和目录列表:"); Scanner sc = null; StringBuffer sb = new StringBuffer(); for(File file : filesList) { System.out.println("文件名: "+file.getName()); System.out.println("文件路径: "+file.getAbsolutePath()); System.out.println("尺寸:"+file.getTotalSpace()); //实例化Scanner类 sc= new Scanner(file); String input; while (sc.hasNextLine()) { input = sc.nextLine(); sb.append(input+" "); } System.out.println("文件内容: "+sb.toString()); System.out.println(" "); //实例化FileOutputStream类 FileOutputStream fileOut = new FileOutputStream("D:\\output.txt"); //实例化DataOutputStream类 DataOutputStream outputStream = new DataOutputStream(fileOut); //将UTF数据写入输出流 outputStream.write(sb.toString().getBytes()); outputStream.flush(); System.out.println("Data entered into the file"); } } }输出结果
指定目录中的文件和目录列表: 文件名: sample1.txt 文件路径: D:\SampleDirectory\sample1.txt 文件内容: sample text file1 Data entered into the file 文件名: sample2.txt 文件路径: D:\SampleDirectory\sample2.txt 文件内容: sample text file2 Data entered into the file 文件名: sample3.txt 文件路径: D:\SampleDirectory\sample3.txt 文件内容: sample text file3 Data entered into the file