Java對(duì)文件的讀寫(xiě)和處理

對(duì)文件處理的java.io.File 以及對(duì)內(nèi)容讀取的 java.io.BufferedReader, 雖然了解, 但到具體操作時(shí)候其實(shí)還需要搜索, 借著工作中的一個(gè)需求, 現(xiàn)整理一下.

需求:

讀取某文件夾下所有以log結(jié)尾的文件, 并對(duì)每一個(gè)文件的每一行進(jìn)行處理, 文件處理完成后移動(dòng)到另一個(gè)文件夾中.

代碼

1.列出目錄下以.log結(jié)尾(或者其他結(jié)尾)的文件

    public static List<String> listFilenames(String path, String type) {
        List<String> fileList = new ArrayList<>();
        MyFilter filter = new MyFilter(type);
        String[] files = new File(path).list(filter);
        if (null != files)
            fileList = Arrays.asList(files);
        return fileList;
    }

    // 過(guò)濾定義
    static class MyFilter implements FilenameFilter {
        private String type;
        public MyFilter(String type) {
            this.type = type;
        }
        public boolean accept(File dir, String name) {
            return name.endsWith(type);
        }
    }

// 調(diào)用
類(lèi).listFilenames('/xx/xx','.log');

2. 讀取文件, 并按行處理

FileReader reader = new FileReader("./data/a.log");
BufferedReader br = new BufferedReader(reader);
while ((str = br.readLine()) != null) {
// str即每一行的數(shù)據(jù)
}
// 用完要關(guān)閉, 注意關(guān)閉順序
br.close();
reader.close();

3. 寫(xiě)文件

FileWriter fw = null;
fw = new FileWriter("D:/cun.txt");
List list = Arrays.asList("1234", "fsdfsdf", "fsdfsdf");
for (String ele : list) {
    fw.write(ele + "\r\n");
}
fw.close();

4. 移動(dòng)文件(移動(dòng)到當(dāng)前目錄下的complete目錄)

    public static void renameFile(String path){
    File file = new File(path);
    File targetPath = new File(new File(path).getParent() + "/complete/");
    File targetFile = new File(targetPath.getPath() + "/" + file.getName());

    if (file.exists())
    {
        if (!targetPath.exists())
        {
            targetPath.mkdir();
        }
        file.renameTo(targetFile);
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,569評(píng)論 19 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類(lèi)相關(guān)的語(yǔ)法,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 34,718評(píng)論 18 399
  • 我好久沒(méi)有寫(xiě)東西了。 曾經(jīng)我很喜歡用筆記錄下什么。剛上大學(xué)的時(shí)候,我會(huì)每讀完一本書(shū),就寫(xiě)一篇讀書(shū)筆記,每看完一場(chǎng)電...
    曲瀟閱讀 373評(píng)論 0 0
  • 將服務(wù)器文件下載到本地==============================================...
    丁橋人在外地閱讀 1,054評(píng)論 0 4
  • 今天終于看了《神奇動(dòng)物去哪里》,不由感嘆,魔法的世界可以天馬行空卻又內(nèi)在滿滿,足以見(jiàn)深藏原著作者以及編劇心中的人文...
    謝氏春秋閱讀 537評(píng)論 2 1

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