遍历某个目录下的所有文件并将内容复制到同一个文件下

    xiaoxiao2023-10-10  160

    package wyh; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; public class FileTest { public static List<File> getFiles(String path){ File root = new File(path); List<File> files = new ArrayList<File>(); if(!root.isDirectory()) { files.add(root); }else { File[] subFiles = root.listFiles(); for(File file : subFiles) { files.addAll(getFiles(file.getAbsolutePath())); } } return files; } public static void main(String[] args) throws FileNotFoundException { List<File> files = getFiles("C:\\Users\\wyhui\\Documents\\wyh");//要读取的目录 File writeFile = new File("C:\\IT\\document\\test.txt");//要写入的文件 BufferedReader reader = null; OutputStream writer = null; writer = new FileOutputStream(writeFile); for(File readFile : files) { try { reader = new BufferedReader(new FileReader(readFile)); String tempString = null; while((tempString = reader.readLine()) != null) { //加上\n,是希望写入文件时也是按照读的时候一条记录一行。写完之后的文件要用notepad++才会显示换行,用notepad打开的是不换行的。 writer.write((tempString+"\n").getBytes()); } reader.close(); }catch(IOException e) { e.printStackTrace(); } System.out.println(readFile.getName()); } } }

    测试结果:

    指定目录下的所有文件都写到了该文件中。

     

    最新回复(0)