国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - java代碼實(shí)現(xiàn)C盤文件統(tǒng)計(jì)工具

java代碼實(shí)現(xiàn)C盤文件統(tǒng)計(jì)工具

2021-10-06 01:12zhangxiaojun34901 Java教程

今天周末,給大家分享基于java代碼實(shí)現(xiàn)C盤文件統(tǒng)計(jì)工具,在這小編使用的版本是Maven-3.9.9,jdk1.8,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

 概述

java代碼實(shí)現(xiàn)C盤文件統(tǒng)計(jì)工具

工作電腦用了3年多了,100G的C盤也快吃不消了,每次打開看到C盤紅了,總要用清理工具清理一下子.

不知道怎么最近清理工具清理了也沒(méi)有什么效果,把temp下面的文件刪除,沒(méi)什么大作用.

總是有一種沖動(dòng)要去處理掉,已經(jīng)影響工作了.乘著星期天寫個(gè)工具,分析一下C盤的文件,看看那些是最近才增加的,能不能手動(dòng)刪除掉.

版本介紹

  • Maven-3.3.9
  • JDK1.8 目錄結(jié)構(gòu)
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
com
  └─sedaier
      └─calcdir
          ├─service
          │  │  IDirSizeCalc.java
          │  │
          │  └─impl
          │         DirSizeCalcByForkJoinPoolImpl.java
          
          ├─test
          │      Test.java
          
          └─tool
                 OutputFileUtils.java //日志輸出工具類

源碼

DirSizeCalcByForkJoinPoolImpl.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package com.sedaier.calcdir.service.impl;
 
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ForkJoinPool;
import java.util.concurrent.ForkJoinTask;
import java.util.concurrent.RecursiveTask;
 
import com.sedaier.calcdir.service.IDirSizeCalc;
import com.sedaier.calcdir.tool.OutputFileUtils;
 
public class DirSizeCalcByForkJoinPoolImpl implements IDirSizeCalc {
    
    @Override
    public long getSize(final File file, final File log) {
        ForkJoinPool forkJoinPool = new ForkJoinPool();
        return forkJoinPool.invoke(new FileSizeFinder(file, log));
    }
 
    @SuppressWarnings("serial")
    private static class FileSizeFinder extends RecursiveTask<Long> {
        final File file;
        final File log;
 
        FileSizeFinder(final File theFile, final File theLog) {
            file = theFile;
            log = theLog;
        }
 
        @Override
        public Long compute() {
            long size = 0;
            if (file.isFile()) {
                size = file.length();
                OutputFileUtils.write(log, file);
            } else {
                final File[] children = file.listFiles();
                if (children != null) {
                    List<ForkJoinTask<Long>> tasks = new ArrayList<ForkJoinTask<Long>>();
                    for (final File child : children) {
                        if (child.isFile()) {
                            size += child.length();
                            OutputFileUtils.write(log, child);
                        } else {
                            tasks.add(new FileSizeFinder(child, log));
                        }
                    }
                    for (final ForkJoinTask<Long> task : invokeAll(tasks)) {
                        size += task.join();
                    }
                }
            }
            return size;
        }
    }
}

IDirSizeCalc.java

?
1
2
3
4
5
6
7
package com.sedaier.calcdir.service;
 
import java.io.File;
 
public interface IDirSizeCalc {
    long getSize(final File file, final File log);
}

Test.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package com.sedaier.calcdir.test;
 
import java.io.File;
 
import com.sedaier.calcdir.service.IDirSizeCalc;
import com.sedaier.calcdir.service.impl.DirSizeCalcByForkJoinPoolImpl;
import com.sedaier.calcdir.tool.OutputFileUtils;
 
public class Test {
    public static void main(final String[] args) {
        String dirPath = "C:\\Windows";
        String log = "C:\\Users\\Administrator\\Desktop\\log.log";
        File file = new File(dirPath);
        File logFile = new File(log);
 
        calcDirSize(file, logFile, new DirSizeCalcByForkJoinPoolImpl());
        OutputFileUtils.distory();
    }
 
    private static void calcDirSize(File file, File log, IDirSizeCalc dirSizeCalc) {
        dirSizeCalc.getSize(file, log);
    }
}

OutputFileUtils.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package com.sedaier.calcdir.tool;
 
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Calendar;
 
public class OutputFileUtils {
 
    public static int time = 0;
    //buffer刷信息時(shí)間
    public static int overtime = 100;
    //避免重復(fù)初始化
    public static boolean flag = false;
    public static FileWriter out = null;
    public static BufferedWriter bw = null;
    //昨天
    public static long day;
    //用于計(jì)算日期 -1 當(dāng)前日期往前一天,-2 當(dāng)前日期往前兩天
    public static int amount = -1;
    
    static {
        //初始化日期
        Calendar instance = Calendar.getInstance();
        instance.add(Calendar.DAY_OF_MONTH, amount);
        day = instance.getTimeInMillis();
    }
    
    public static void write(final File log, File file) {
        
        try {
            if (!flag && !log.exists()) {
                log.createNewFile();
                flag = true;
            }
            if(out == null || bw == null) {
                out = new FileWriter (log);
                bw = new BufferedWriter(out);
            }
            long lastModified = file.lastModified();
            if(lastModified > day) {
                bw.write(String.format("%s===大小=%d===時(shí)間=%tF",file.getAbsolutePath(),file.length()/1000000,lastModified));
                bw.newLine();
            }
            time++;
            if(time > overtime) {
                bw.flush();
                time = 0 ;
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
    public static void distory() {
        try {
            bw.close();
            out.close();
            System.out.println("關(guān)閉成功!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

源碼下載地址

https://gitee.com/lanseyouyu/sediaer-calcdir.git

到此這篇關(guān)于java代碼實(shí)現(xiàn)C盤文件統(tǒng)計(jì)工具的文章就介紹到這了,更多相關(guān)java c盤文件統(tǒng)計(jì)工具內(nèi)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://blog.csdn.net/qq125281823/article/details/118651166

延伸 · 閱讀

精彩推薦
  • Java教程Java BufferWriter寫文件寫不進(jìn)去或缺失數(shù)據(jù)的解決

    Java BufferWriter寫文件寫不進(jìn)去或缺失數(shù)據(jù)的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進(jìn)去或缺失數(shù)據(jù)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程20個(gè)非常實(shí)用的Java程序代碼片段

    20個(gè)非常實(shí)用的Java程序代碼片段

    這篇文章主要為大家分享了20個(gè)非常實(shí)用的Java程序片段,對(duì)java開發(fā)項(xiàng)目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
  • Java教程Java實(shí)現(xiàn)搶紅包功能

    Java實(shí)現(xiàn)搶紅包功能

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)搶紅包功能,采用多線程模擬多人同時(shí)搶紅包,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙...

    littleschemer13532021-05-16
  • Java教程xml與Java對(duì)象的轉(zhuǎn)換詳解

    xml與Java對(duì)象的轉(zhuǎn)換詳解

    這篇文章主要介紹了xml與Java對(duì)象的轉(zhuǎn)換詳解的相關(guān)資料,需要的朋友可以參考下...

    Java教程網(wǎng)2942020-09-17
  • Java教程升級(jí)IDEA后Lombok不能使用的解決方法

    升級(jí)IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級(jí),尋思已經(jīng)有好久沒(méi)有升過(guò)級(jí)了。升級(jí)完畢重啟之后,突然發(fā)現(xiàn)好多錯(cuò)誤,本文就來(lái)介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關(guān)于小米推送Java代碼,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧...

    富貴穩(wěn)中求8032021-07-12
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程Java8中Stream使用的一個(gè)注意事項(xiàng)

    Java8中Stream使用的一個(gè)注意事項(xiàng)

    最近在工作中發(fā)現(xiàn)了對(duì)于集合操作轉(zhuǎn)換的神器,java8新特性 stream,但在使用中遇到了一個(gè)非常重要的注意點(diǎn),所以這篇文章主要給大家介紹了關(guān)于Java8中S...

    阿杜7472021-02-04
主站蜘蛛池模板: 国产精品久久久久久久免费大片 | 网站色 | 日本中文字幕网 | 国产精品久久久久免费a∨ 狠狠影院 | 亚洲国产高清美女在线观看 | 成人自拍视频 | 中国女人黄色大片 | 色婷婷综合久色 | 一级黄色片子看看 | 亚州中文字幕 | 免费a网站 | h视频在线免费观看 | 中文字幕亚洲欧美 | 午夜视频免费 | 午夜专区| 亚洲小视频网站 | 久久99精品视频 | 黄色小视频在线观看 | 九九久久精品 | 激情视频综合网 | 1000部精品久久久久久久久 | 午夜伦理影院 | 求av网址| av在线免费播放 | 国产大学生援交视频在线观看 | av不卡在线| 婷婷色av| 日韩欧美一区二区在线观看 | 免费一级a毛片免费观看 | 欧美国产日韩一区 | 成人国产电影 | 日韩午夜激情视频 | 欧美精品一区二区三区蜜桃视频 | 午夜影院在线 | 中文字幕精品一区二区三区精品 | 久草视频免费看 | 久久久久久久免费观看 | 精品成人av一区二区在线播放 | 欧美精品成人一区二区在线 | 中文字幕av亚洲精品一部二部 | 天堂av在线免费观看 |