码迷,mamicode.com
首页 > 其他好文 > 详细

第二篇 IO流技术(二)

时间:2018-08-26 18:27:25      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:自身   调用   col   space   []   import   auth   个数   ack   

package com.zzp.demo;

import java.io.File;

/**
 * 
 * 递归:方法自己调用自己
 *递归头:何时结束递归
 *递归体:重复调用
 * @author java
 *
 */
public class DirDemo03 {
    public static void main(String[] args) {
        test(1);
    }
    
    public static void test(int i){
        if(i > 10){
            return;
        }
        System.out.println(i);
        test(i+1);
    }
}

打印子孙级目录和文件的名称

package com.zzp.demo;

import java.io.File;

/**
 * 
 * 打印子孙级目录和文件的名称
 * @author java
 *
 */
public class DirDemo04 {
    public static void main(String[] args) {
        File src = new File("F:/workspace1/IO/src");
        testName(src,0);
    }
    
    public static void testName(File src,int deep){
        //打印子孙级目录和文件的名称
        //控制前面的层次感
        for(int i=0;i<deep;i++){
            System.out.print("---");
        }
        //打印文件的名称
        System.out.println(src.getName());
        //递归头
        if(null == src || !src.exists()){
            return;
        }else if(src.isDirectory()){
            //递归体
            for(File s : src.listFiles()){
                testName(s,deep+1);
            }
        }
    }
}

统计文件夹的大小

package com.zzp.demo;

import java.io.File;

/**
 * 
 * 统计文件夹的大小
 * @author java
 *
 */
public class DirDemo05 {
    public static void main(String[] args) {
        File src = new File("F:/workspace1/IO");
        testLength(src);
        System.out.println(len);
    }
    private static long len = 0;
    public static void testLength(File src){
        if(null != src || src.exists()){
            if(src.isFile()){
                len += src.length();
            }else if(src.isDirectory()){
                for(File s : src.listFiles()){
                    testLength(s);
                }
            }
        }
    }
}

使用面向对象统计文件夹的大小

package com.zzp.demo;

import java.io.File;

/**
 * 
 * 使用面向对象统计文件夹的大小
 * @author java
 *
 */
public class DirCount {
    //大小
    private int len;
    //文件夹的路径
    private String path;
    //
    private File src;
    //文件的个数   包含自身从0开始,不包含自身从—1开始
    private int fileSize;
    //文件夹的个数   包含自身从0开始,不包含自身从—1开始
    private int dirSize;
    
    public DirCount(String path){
        this.path = path;
        this.src = new File(path);
        count(this.src);
    }
    
    public void count(File src){
        if(null != src || src.exists()){
            if(src.isFile()){
                len += src.length();
                this.fileSize++;
            }else{
                this.dirSize++;
                for(File s : src.listFiles()){
                    count(s);
                }
            }
        }
    }
    
    public int getLen() {
        return len;
    }

    public String getPath() {
        return path;
    }

    public File getSrc() {
        return src;
    }
    

    public int getFileSize() {
        return fileSize;
    }

    public int getDirSize() {
        return dirSize;
    }

    public static void main(String[] args) {
        DirCount dir = new DirCount("F:/workspace1/IO");
        System.out.println(dir.getLen());
        System.out.println(dir.getDirSize());
        System.out.println(dir.getFileSize());
    }
}

 

第二篇 IO流技术(二)

标签:自身   调用   col   space   []   import   auth   个数   ack   

原文地址:https://www.cnblogs.com/zhangzhipeng001/p/9537822.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!