统计某一目录下每个文件中出现的字母个数、数字个数、空格个数及行数(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"));
	}
}

 

目录
相关文章
|
29天前
|
分布式计算 Java Hadoop
linux中HADOOP_HOME和JAVA_HOME删除后依然指向旧目录
通过以上步骤,可以有效地解决 `HADOOP_HOME`和 `JAVA_HOME`删除后依然指向旧目录的问题。确保在所有相关的配置文件中正确设置和删除环境变量,并刷新当前会话,使更改生效。通过这些措施,能够确保系统环境变量的正确性和一致性。
26 1
|
3月前
|
存储 缓存 监控
Java——图片文件位于 bin 目录下,下载新图片会导致应用程序重启
【9月更文挑战第22天】在Java应用中,若图片位于bin目录下且下载新图片导致应用重启,可能是因为部署方式不当或资源监控机制过于敏感。解决方法包括:更改图片存储位置至独立目录;配置应用服务器减少资源监控敏感度;使用独立资源服务器托管静态资源;优化代码减少资源重复加载。具体方案需根据应用实际情况和技术栈调整。
|
4月前
|
存储 安全 Java
在 Java 中如何从 ArrayList 中删除空格
【8月更文挑战第23天】
43 1
|
4月前
|
Java
Java系列 之除字符串中的空格(trim())
这篇文章介绍了Java中`String`类的`trim()`方法,用于去除字符串首尾的空格,并指出`trim()`只能去除半角空格,对于全角空格需要先用`replace()`方法替换成半角空格再进行去除。
|
4月前
|
JavaScript Java
点击按钮,向下添加目录。Java script+jQuery写法
点击按钮,向下添加目录。Java script+jQuery写法
28 1
|
4月前
|
Java
java中实现File文件的重命名(renameTo)、将文件移动到其他目录下、文件的复制(copy)、目录和文件的组合(更加灵活方便)
这篇文章介绍了Java中使用`renameTo()`、`Files.copy()`等方法对文件进行重命名、移动和复制的操作,并提供了代码实例和测试效果。
java中实现File文件的重命名(renameTo)、将文件移动到其他目录下、文件的复制(copy)、目录和文件的组合(更加灵活方便)
|
4月前
|
存储 Java API
|
4月前
|
存储 算法 Java
LeetCode初级算法题:反转链表+统计N以内的素数+删除排序数组中的重复项Java详解
LeetCode初级算法题:反转链表+统计N以内的素数+删除排序数组中的重复项Java详解
48 0
|
5月前
|
Java
Java之file,创建文件,File f1 = new File(“E:\\itcast\\java.txt“),先f1定路径,在f1.createNewFile()就能够创建文件,mkdir目录
Java之file,创建文件,File f1 = new File(“E:\\itcast\\java.txt“),先f1定路径,在f1.createNewFile()就能够创建文件,mkdir目录
|
6月前
|
Java
java使用Files.walkFileTree统计文件夹下的文件夹和文件数量
java使用Files.walkFileTree统计文件夹下的文件夹和文件数量
下一篇
DataWorks