package cn.readtxt;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class StringCountOfFile {
public static void main(String argv[])throws Exception{
File fileSrc=new File("D:\\bill\\test.txt");
if(!fileSrc.exists()){
throw new Exception("目录不存在");
}
BufferedReader fin=new BufferedReader( new FileReader(fileSrc) );
String line;
Map<String, Integer> counter= new HashMap<String, Integer>();
while( (line=fin.readLine())!=null){
String[] str = line.split("\\|");//文件以13002927346|a270,g0,h0,i0格式保存
String key = str[1];//以标签作为key保存到map
if(counter.containsKey(key)){
counter.put(key, counter.get(key)+1);
}else{
counter.put(key, 1);
}
File fileLabel = new File("D:\\bill" + File.separator + key.replaceAll(",", ""));
if (!fileLabel.exists()) {
fileLabel.createNewFile();
}
//每个字符的个数
// int len = line.length();
// for(int i=0; i<len; i++){
// char c=line.charAt(i);
// if(!( (c>='0' && c<='9') || (c>='A' && c<='Z') || (c>='a' && c<='z') ) ){
// continue;
// }
// if(counter.containsKey(c)){
// counter.put(c, counter.get(c)+1);
// }else{
// counter.put(c, 1);
// }
// }
}
fin.close();
int sum = 0;
for(Iterator<String> it=counter.keySet().iterator(); it.hasNext(); ){
BufferedReader reader=new BufferedReader( new FileReader(fileSrc) );
String key=it.next();
int count=counter.get(key);
System.out.println("标签:" + key+" --- "+count);
StringBuffer sb= new StringBuffer("");
while( (line=reader.readLine())!=null){
if (line.contains(key)) {
sb.append(line+"\r\n");
}
}
BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\bill" + File.separator + key.replaceAll(",", "")));
bw.write(sb.toString());
bw.close();
reader.close();
sum += count;
}
System.out.println("总记录数:" + " --- "+sum);
}
}
源文件按照标签分割,以标签为文件名分类保存分割后的文件
最新推荐文章于 2022-11-28 00:45:54 发布