用了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();
}}有兴趣的朋友可以测试下,目前遇到情况是空格好像没统计到,望高手指教!