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

}

}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值