第二篇 IO流技术

Posted zhangzhipeng001

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第二篇 IO流技术相关的知识,希望对你有一定的参考价值。

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流技术的主要内容,如果未能解决你的问题,请参考以下文章

java缓冲字符字节输入输出流:java.io.BufferedReaderjava.io.BufferedWriterjava.io.BufferedInputStreamjava.io.(代码片段

Linux从青铜到王者第二十二篇:Linux高级IO

Mybatis框架第二篇

攻防技术第二篇之-知己(防御手段)

Python进阶第二篇多线程消息队列queue

攻防技术第二篇之-知己(防御手段)