如何使用 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 { //Creating a File object for directory File directoryPath = new File("D:\SampleDirectory"); //List of all files and directories File filesList[] = directoryPath.listFiles(); System.out.println("List of files and directories in the specified directory:"); Scanner sc = null; StringBuffer sb = new StringBuffer(); for(File file : filesList) { System.out.println("File name: "+file.getName()); System.out.println("File path: "+file.getAbsolutePath()); System.out.println("Size :"+file.getTotalSpace()); //Instantiating the Scanner class sc= new Scanner(file); String input; while (sc.hasNextLine()) { input = sc.nextLine(); sb.append(input+" "); } System.out.println("Contents of the file: "+sb.toString()); System.out.println(" "); //Instantiating the FileOutputStream class FileOutputStream fileOut = new FileOutputStream("D:\output.txt"); //Instantiating the DataOutputStream class DataOutputStream outputStream = new DataOutputStream(fileOut); //Writing UTF data to the output stream outputStream.write(sb.toString().getBytes()); outputStream.flush(); System.out.println("Data entered into the file"); } } }
输出
List of files and directories in the specified directory: File name: sample1.txt File path: D:\SampleDirectory\sample1.txt Contents of the file: sample text file1 Data entered into the file File name: sample2.txt File path: D:\SampleDirectory\sample2.txt Contents of the file: sample text file2 Data entered into the file File name: sample3.txt File path: D:\SampleDirectory\sample3.txt Contents of the file: sample text file3 Data entered into the file
广告