您的位置:首页 > 编程语言 > Java开发

Java上机实现统计某一目录下每个文件中出现的字母个数、数字个数、空格个数及行数?

2010-04-09 11:06 861 查看
迅雷的一道上机题

主要用了2个java类实现如下:

package lianxi;
/**
* 用于保存每个文件中要记录的数据
*
* @author Administrator
*
*/
public class file {
public String name;   //文件名
public int num;      //数字数目
public int zimu;    //字母数
public int hang;    //行数
public int kongge;  //空格数
public int getKongge() {
return kongge;
}
public void setKongge(int kongge) {
this.kongge = kongge;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public int getZimu() {
return zimu;
}
public void setZimu(int zimu) {
this.zimu = zimu;
}
public int getHang() {
return hang;
}
public void setHang(int hang) {
this.hang = hang;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

package lianxi;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;
/**
* Java上机实现统计某一目录下每个文件中出现的字母个数、数字个数、空格个数及行数?
*
* @author Administrator
*
*/
public class ReadFile {
/**
* 保存文件统计信息
*/
public static List<file> flist = new ArrayList();
/**
* 读取路径
*
* @param path
*/
private static void GetFile(String path) {
File filedir = new File(path);
ComputeFle(filedir);
}
/**
* 递归遍历文件
* @param filedir
*/
private static void ComputeFle(File filedir) {
if (filedir.isDirectory()) { // 文件目录
File[] farray = filedir.listFiles();
for (File f : farray) {
if (f.isDirectory()) { //是目录
ComputeFle(f);
} else { //是文件
try {
int ch = 0;
int count = 0; //数字
int j = 0; //字母
int i = 0; // 行数
int k = 0; // 空格
FileInputStream fis = new FileInputStream(f);
BufferedReader br = new BufferedReader(
new FileReader(f));
// 统计数字、字母、空格
while ((ch = fis.read()) != -1) {
if ('0' <= ch && ch <= '9') {
count++;
}
if ('a' <= ch && ch <= 'z' || 'A' <= ch
&& ch <= 'Z') {
j++;
}
if (ch == ' ') {
k++;
}
}
// 统计行数
while (br.readLine() != null) {
i++;
}
file fi = new file();
fi.setName(f.getName());
fi.setNum(count);
fi.setZimu(j);
fi.setHang(i);
flist.add(fi);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
/**
* 输出
*/
public static void Print() {
for (file f : flist) {
System.out.println(f.getName() + ": ,data:" + f.getNum()
+ " ,character:" + f.getZimu() + " ,hangshu:" + f.getHang()
+ " ,kongge:" + f.getKongge());
}
}
/**
* 测试
*
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
GetFile("D://test");
Print();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐