统计某一目录下每个文件中出现的字母个数、数字个数、空格个数及行数(JAVA)

简介: 迅雷一道比较基础的笔试面试题目:Java实现统计某一目录下每个文件中出现的字母个数、数字个数、空格个数及行数? import java.io.BufferedReader; import java.

迅雷一道比较基础的笔试面试题目:Java实现统计某一目录下每个文件中出现的字母个数、数字个数、空格个数及行数?

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;


public class FileCount {

	public static void ReadSubdirectory(File myDir) {
		// 判断myDir是否为文件目录
		if (myDir.isDirectory()) {
			File[] subFile = myDir.listFiles();
			for (int i = 0; i < subFile.length; i++) {
				// 如果列表下含有子目录
				if (subFile[i].isDirectory()) {
					ReadSubdirectory(subFile[i]);
				} else {
					ReadSubFile(subFile[i]);
				}
			}
		}
	}

	// 统计当前文件中数字 字母 空格的个数 和 文件行数
	public static void ReadSubFile(File file) {
		int numCount = 0;// 数字个数
		int letterCount = 0;// 字母个数
		int spaceCount = 0;// 空格个数
		int lineCount = 0;//行数
		int uniChar = 0;
		try {
			FileInputStream input = new FileInputStream(file);
			while ((uniChar = input.read()) != -1) {
				if (uniChar >= 48 && uniChar <= 57) {// 判断是否是数字
					numCount++;
				} else if ((uniChar >= 65 && uniChar <= 90) || (uniChar >= 97 && uniChar <= 122)) {// 判断是否是字母
					letterCount++;
				} else if (uniChar == 32) {// 判断是否是空格
					spaceCount++;
				}
			}
			BufferedReader buffer = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
			while(buffer.readLine() != null) {
				lineCount++;
			}
			System.out.println(file.getAbsolutePath());
			System.out.println(" 数字个数 : " + numCount);
			System.out.println(" 字母个数 : " + letterCount);
			System.out.println(" 空格个数 : " + spaceCount);
			System.out.println(" 行数数 : " + lineCount);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		ReadSubdirectory(new File("D://src"));
	}
}

 

目录
相关文章
|
5天前
|
Java
【Java开发指南 | 第二十一篇】Java流之文件
【Java开发指南 | 第二十一篇】Java流之文件
14 0
|
4天前
|
消息中间件 Java Kafka
Java大文件排序(有手就能学会),kafka面试题2024
Java大文件排序(有手就能学会),kafka面试题2024
|
5天前
|
安全 Java 开发者
Java一分钟之-文件与目录操作:Path与Files类
【5月更文挑战第13天】Java 7 引入`java.nio.file`包,`Path`和`Files`类提供文件和目录操作。`Path`表示路径,不可变。`Files`包含静态方法,支持创建、删除、读写文件和目录。常见问题包括:忽略异常处理、路径解析错误和权限问题。在使用时,注意异常处理、正确格式化路径和考虑权限,以保证代码稳定和安全。结合具体需求,这些方法将使文件操作更高效。
11 2
|
5天前
|
移动开发 前端开发 Java
STS里的java 工程项目名称修改和目录设置成源代码
STS里的java 工程项目名称修改和目录设置成源代码
|
5天前
|
Java 开发者
Java一分钟之-Java IO流:文件读写基础
【5月更文挑战第10天】本文介绍了Java IO流在文件读写中的应用,包括`FileInputStream`和`FileOutputStream`用于字节流操作,`BufferedReader`和`PrintWriter`用于字符流。通过代码示例展示了如何读取和写入文件,强调了常见问题如未关闭流、文件路径、编码、权限和异常处理,并提供了追加写入与读取的示例。理解这些基础知识和注意事项能帮助开发者编写更可靠的程序。
18 0
|
5天前
|
Java
JDK环境下利用记事本对java文件进行运行编译
JDK环境下利用记事本对java文件进行运行编译
16 0
|
5天前
|
Arthas 安全 Java
java服务报错 FileNotFoundException:打开的文件过多
java服务报错 FileNotFoundException:打开的文件过多
17 0
|
5天前
|
Oracle Java 关系型数据库
windows 下 win11 JDK17安装与环境变量的配置(配置简单详细,包含IJ中java文件如何使用命令运行)
本文介绍了Windows 11中安装JDK 17的步骤,包括从官方网站下载JDK、配置环境变量以及验证安装是否成功。首先,下载JDK 17的安装文件,如果没有Oracle账户,可以直接解压缩文件到指定目录。接着,配置系统环境变量,新建`JAVA_HOME`变量指向JDK安装路径,并在`Path`变量中添加。然后,通过命令行(cmd)验证安装,分别输入`java -version`和`javac -version`检查版本信息。最后,作者分享了如何在任意位置运行Java代码,包括在IntelliJ IDEA(IJ)中创建的Java文件,只需去掉包声明,就可以通过命令行直接运行。
|
5天前
|
存储 监控 Java
如何在Java中实现等待文件修改后再读取数据的功能?
如何在Java中实现等待文件修改后再读取数据的功能?
19 0
|
5天前
|
存储 Java 数据格式
Java实战:轻松掌握文件重命名与路径提取技巧
Java实战:轻松掌握文件重命名与路径提取技巧
21 0