import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeMap;
/*
题目:把当前文件中的所有文本拷贝,存入一个txt文件,统计每个字符出现的次数并输出,例如:
a: 21 次
b: 15 次
c:: 15 次
把: 7 次
当: 9 次
前: 3 次
,:30 次
*/
public class Test15 {
public static void main(String[] args) throws Exception{
TreeMap<Character , Integer> tm = new TreeMap<Character , Integer> ();
BufferedReader bufr = new BufferedReader(new FileReader("D:\\Test.txt"));
BufferedWriter bufw = new BufferedWriter(new FileWriter("D:\\Test1.txt"));
String line = null;
while((line=bufr.readLine())!=null){
store(line,tm);// 将每一行数据存入集合中
}
bufr.close();
// 将存在Map集合中的元素取出 ,存入 bufw
Set<Character> keySet = tm.keySet();
Iterator<Character> it = keySet.iterator();
while(it.hasNext()){
Character key = it.next();
Integer value = tm.get(key);
bufw.write(key+": "+value);// 存入目的文本中
bufw.newLine();
}
bufw.close();
}
// 创建读取一行数据的方法 "abcd"
public static void store(String line, TreeMap<Character , Integer> tm){
// 字符串转换为字符数组
char[] ch = line.toCharArray();
// 遍历字符数组,
for(int i=0; i<ch.length; i++){
// 字符作为键,获取值
Character key = ch[i];
Integer value = tm.get(key);
if(value==null){
tm.put(key, 1);
}else
tm.put(key, value+1);
}
}
} |
|