Java IO基础--File常用操作(递归)
File中经常会使用递归方法打印属性结构、统计文件夹下文件个数、子文件夹个数以及文件大小,可以作为递归的应用练习。
递归的写法,百度一搜一大堆,这里我使用对javabean方式封装了一下:
package com.xzlf.io;
import java.io.File;
public class TestCount {
private String dir;//文件夹
private int length;//文件夹大小
private int size;//文件个数
private int dirsize = -1;//文件夹个数,只统计子文件夹个数
public TestCount(String dir) {
super();
this.dir = dir;
}
public int getLength() {
return length;
}
public int getSize() {
return size;
}
public int getDirsize() {
return dirsize;
}
/**
* 递归遍历文件夹
* @param dir
* @param deep
*/
public void printDir(File dir,int deep) {
for (int i = 0; i < deep; i++) {
System.out.print("-");
}
System.out.println(dir.getName());
if(null == dir || !dir.exists()) {
return;
}else if(dir.isDirectory()) {
dirsize++;
File[] listFiles = dir.listFiles();
for(File f : listFiles) {
printDir(f, deep + 1);
}
}
}
/**
* 统计文件夹大小、子文件夹和文件个数
* @param dir
*/
public void countDir(File dir) {
if(dir != null && dir.exists()) {
if(dir.isFile()) {
size++;
length += dir.length();
}else {
File[] listFiles = dir.listFiles();
for (File f : listFiles) {
countDir(f);
}
}
}
}
public static void main(String[] args) {
TestCount tc = new TestCount("D:\\workspace_eclipse_2019_12\\fuxi\\reDo");
File f = new File(tc.dir);
tc.printDir(f, 0);
tc.countDir(f);
System.out.printf("文件个数:%d%n文件夹大小:%d%n文件大小:%d%n",
tc.getSize(),tc.getDirsize(),tc.getLength());
}
}
运行测试:

Java IO基础--File常用操作(递归)的更多相关文章
- Java IO编程——File文件操作类
在Java语言里面提供有对于文件操作系统操作的支持,而这个支持就在java.io.File类中进行了定义,也就是说在整个java.io包里面,File类是唯一 一个与文件本身操作(创建.删除.重命名等 ...
- Java—IO流 File类的常用API
File类 1.只用于表示文件(目录)的信息(名称.大小等),不能用于文件内容的访问. package cn.test; import java.io.File; import java.io.IOE ...
- java IO基础操作
java IO基础,通熟易懂,好久没复习java 基础了.这里是传送门... http://www.cnblogs.com/nerxious/archive/2012/12/15/2818848.ht ...
- 总结java创建文件夹的4种方法及其优缺点-JAVA IO基础总结第三篇
本文是Java IO总结系列篇的第3篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇 总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 ...
- 总结删除文件或文件夹的7种方法-JAVA IO基础总结第4篇
本文是Java IO总结系列篇的第4篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇 总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 ...
- 总结java中文件拷贝剪切的5种方式-JAVA IO基础总结第五篇
本文是Java IO总结系列篇的第5篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇 总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 ...
- Java SE 基础:常用关键字
Java SE 基础:常用关键字 常用关键字表
- [Storm] java.io.FileNotFoundException: File '../stormconf.ser' does not exist
This bug will kill supervisors Affects Version/s: 0.9.2-incubating, 0.9.3, 0.9.4 Fix Version/s: 0.10 ...
- 运行基准测试hadoop集群中的问题:org.apache.hadoop.ipc.RemoteException: java.io.IOException: File /benchmarks/TestDFSIO/io_data/test_
在master(即:host2)中执行 hadoop jar hadoop-test-1.1.2.jar DFSCIOTest -write -nrFiles 12 -fileSize 10240 - ...
随机推荐
- 左手VS PK 右手IDEA
近日愈发觉得编程是一件有趣的事. 三年前退伍时,还没有确定要继续干这行.去了北京之后,决定写代码吧.Why? 我是一个唯物主义者. 过去两年,一直抱有的念头是,怎么着也要至少干个三年,再寻求不写代码的 ...
- 深入理解NIO(二)—— Tomcat中对NIO的应用
深入理解NIO(二)—— Tomcat中对NIO的应用 老哥行行好,转载和我说一声好吗,我不介意转载的,但是请把原文链接贴大点好吗 Tomcat大致架构 先贴两张图大致看一眼Tomcat的架构 Tom ...
- WiX 简介
最近研究了一下WIX打包,简单总结一下,方便自己以后查阅,也希望能给需要的人一些提示和帮助. WiX 简介 Windows Installer XML (WiX ) 平台是一组工具与规范,使您能够创建 ...
- Java刷题知识点总结
1,方法的重写(override)两同两小一大原则: 方法名相同,参数类型相同 子类返回类型小于等于父类方法返回类型, 子类抛出异常小于等于父类方法抛出异常, 子类访问权限大于等于父类方法访问权限. ...
- 算法(algorithm)
算法是什么? 算法是指令的集合,是为解决特定问题而规定的一系列操作. 它是明确定义的可计算过程,以一个数据集合作为输入,并产生一个数据集合作为输出. 一个算法通常来说具有以下五个特性: 1.输入:一个 ...
- Spring ApplicationContext 容器
Spring ApplicationContext 容器 Application Context 是 BeanFactory 的子接口,也被成为 Spring 上下文. Application Con ...
- CentOS虚拟机开机显示多内核版本
在CentOS进行系统更新后,会保留旧版本的内核.所以,在每次启动时,会有多个内核选项,可以手动删除不用的旧版本内核. 1.查看当前系统内核版本 #uname -a 2.查看系统中存在的全部内 ...
- 打造一款 刷Java 知识的小程序(二)
学习Java的神器已上线,面向广大Java爱好者! 之前写的一篇:打造一款 刷Java 知识的小程序(一) 一.第二版做了什么? 第一版小程序只具有初级展示功能,知识点都是hardcode在代码里面的 ...
- ENVI 安装
本文转自https://jingyan.baidu.com/article/2d5afd69d50e9585a2e28e37.html 但对该文有所补充,建议看本文,本文更详细. ENVI5.3安装 ...
- NumPy学习1:基本概念
NumPy的数组类被称作 ndarray .通常被称作数组.注意numpy.array和标准Python库类array.array并不相同,后者只处理一维数组和提供少量功能.更多重要ndarray对象 ...