java將指定路徑下所有java文件讀取到txt中

運行結(jié)果

image.png

源碼

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;

public class WalkFiles {
    // 以java、jsp為后綴的文件
    static final String FILE_EXTENSION1 = "JAVA";
    static final String FILE_EXTENSION2 = "JSP";

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.print("輸入文件夾路徑: ");
        traverseFolder(in.nextLine());
    }

    public static void traverseFolder(String parentFolderPath) {
        File parentFolder = new File(parentFolderPath);
        File[] childrenFiles = null;
        if (parentFolder.isFile()) {
            if (isTextFile(parentFolder)) {
                try {
                    System.out.println(
                            "文件路徑: " + parentFolder.getAbsolutePath());
                    printFile(parentFolder);
                    System.out.println("");
                } catch (IOException ioe) {
                    System.exit(1);
                }
            } else {
                // System.out.println("This directory doesn't contain any
                // files!!");
                return;
            }
        } else {
            childrenFiles = parentFolder.listFiles();
            if (childrenFiles.length == 0) {

                return;
            }
            if (!containsDirectory(childrenFiles)) {
                for (File file : childrenFiles) {
                    if (isTextFile(file)) {
                        try {
                            System.out.println(
                                    "File Location: " + file.getAbsolutePath());
                            printFile(file);
                            System.out.println("");
                        } catch (IOException ioe) {
                            System.exit(1);
                        }
                    }
                }
            } else {
                for (File file : childrenFiles) {
                    traverseFolder(file.getAbsolutePath());
                }
            }
        }
    }

    private static boolean containsDirectory(File[] files) {
        for (File f : files) {
            if (f.isDirectory()) {
                return true;
            }
        }

        return false;
    }

    /**
     * 輸出讀取的內(nèi)容到控制臺
     * 
     * @param file
     * @throws IOException
     */
    private static void printFile(File file) throws IOException {
        BufferedReader reader = new BufferedReader(new FileReader(file));
        String line = reader.readLine();
        while (line != null) {
//          System.out.println(line);
            line = reader.readLine();
            writeToFile(line);
        }
        System.out.println("完成");
    }

    public static void writeToFile(String content) {
        FileWriter fw = null;
        try {
            // 如果文件存在,則追加內(nèi)容;如果文件不存在,則創(chuàng)建文件
            File f = new File("E:\\test.txt");
            fw = new FileWriter(f, true);
        } catch (IOException e) {
            e.printStackTrace();
        }
        PrintWriter pw = new PrintWriter(fw);
        pw.println(content);
        pw.flush();
        try {
            fw.flush();
            pw.close();
            fw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private static boolean isTextFile(File file) {
        String fileName = file.getName();
        int i = fileName.lastIndexOf('.');
        String fileExtension = fileName.substring(i + 1).toUpperCase();
        if (i > 0 && fileExtension.equals(FILE_EXTENSION1)
                || fileExtension.equals(FILE_EXTENSION2)) {
            return true;
        }
        return false;
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容