D:\t.txt923636|13000000000|-cxby1|2008-09-27 10:00:00|B 
923636|13000000000|-cxby1|2008-11-05 15:47:37|A 
923636|13000000000|-cxby1|2008-11-05 16:46:43|A 
923636|13000000000|-cxby1|2008-09-11 11:30:00|C 
923636|13000000000|-cxby1|2008-11-05 16:10:34|A 
923636|13000000000|-cxby1|2008-11-05 16:31:24|A 
923636|13000000000|-cxby1|2008-09-27 10:00:00|B 
923636|13000000000|-cxby1|2008-11-05 15:55:56|A 
923636|13000000000|-cxby1|2008-11-05 16:18:36|B 
923636|13000000000|-cxby1|2008-09-27 10:00:00|A 
923636|13000000000|-cxby1|2008-09-27 10:00:00|B 
923636|13000000000|-cxby1|2008-09-27 10:00:00|A 
923636|13000000000|-cxby1|2008-09-27 10:00:00|A A.数据统计: 
1.统计A类型的用户数量,信息 
2.统计B类型的用户数量,信息 
3.统计C类型的用户数量,信息 
B.类型输出到文件 
1.输出所有A类型的用户到指定文件,并时间排序 
2.输出所有B类型的用户到指定文件,并时间排序 
3.输出所有C类型的用户到指定文件,并时间排序 import java.io.*;public class InfoClient {

public static void main(String[] args) {
BufferedReader br=null;
int numA=0;
int numB=0;
int numC=0;
File file=new File("c:\\test.txt");
try {
    br = new BufferedReader(new InputStreamReader(
    new FileInputStream(file)));//获得文件流
     String line = null;
    while ((line = br.readLine()) != null) {//读取一行
     String[] strArray= line.split("|");
    }
         if ("A".equals(strArray[strArray.length-1])){
         numA++;  
            }
         else {
        
         }
         if ("B".eequals(strArray[strArray.length-1])){
                numB++;  
            }
         else {
        
         }
         if ("C".equals(strArray[strArray.length-1])){
                numC++;  
            }
} catch(IOException e) {
e.printStackTrace();

}

}

解决方案 »

  1.   

    ("B".eequals(strArray
    除了這個找不到問題,/_\
      

  2.   

    import java.io.*; public class InfoClient   {  public static void main(String[] args) { 
    BufferedReader br=null; 
    int numA=0; 
    int numB=0; 
    int numC=0; 
    File file=new File("c:\\test.txt"); 
    String[] strArray=null;
    try { 
         br = new BufferedReader(new InputStreamReader( 
         new FileInputStream(file)));//获得文件流 
         String line = null; 
         while ((line = br.readLine()) != null) {//读取一行 
         strArray= line.split("\\|");   //这里
       } 
      
          if ("A".equals(strArray[strArray.length-1].trim())){   //还要去空格
            numA++;  
          }       if ("B".equals(strArray[strArray.length-1].trim())){ 
                    numB++;  
          }       if ("C".equals(strArray[strArray.length-1].trim())){ 
              numC++;  
          } 
    } catch(IOException e) { 
    e.printStackTrace();  } 


    }
      

  3.   


    import java.io.*;public class InfoClient { public static void main(String[] args) {
    BufferedReader br = null;
    int numA = 0;
    int numB = 0;
    int numC = 0;
    File file = new File("c:\\test.txt");
    try {
    br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));// 获得文件流
    String line = null;
    while ((line = br.readLine()) != null) {// 读取一行
    String[] strArray = line.split("|");

    if ("A".equals(strArray[strArray.length - 1])) {
    numA++;
    } else {

    }
    if ("B".equals(strArray[strArray.length - 1])) {
    numB++;
    } else {

    }
    if ("C".equals(strArray[strArray.length - 1])) {
    numC++;
    }
    }
    System.out.println(numA);
    System.out.println(numB);
    System.out.println(numC);
    } catch (IOException e) {
    e.printStackTrace(); }
    }
    }
      

  4.   

    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.regex.Pattern;public class Test {
        
        public static void main(String[] args) throws IOException {
            String filename = "d:/data.txt";
            FileProcess process = new FileProcess();
            Map<String, List<DataBean>> map = process.getGroupData(filename);        
            
            for(Map.Entry<String, List<DataBean>> entry : map.entrySet()) {
                List<DataBean> beans = entry.getValue();
                Collections.sort(beans, DataBean.getDateComparator());
                System.out.println(entry.getKey() + " --> " + beans.size());
                process.save(beans, "d:/data_" + entry.getKey() + ".txt");
            }
        }
    }class FileProcess {    private final static String LINE_SEPARATOR = System.getProperty("line.separator");
        
        public void save(List<DataBean> data, String filename) throws IOException {
            System.out.println(filename);
            save(data, new File(filename));
        }
        
        public void save(List<DataBean> data, File file) throws IOException {
            StringBuffer sb = new StringBuffer();
            for(int i = 0, k = data.size(); i < k; i++) {
                if(i > 0) {
                    sb.append(LINE_SEPARATOR);
                }
                data.get(i).toBufferString(sb);
            }
            BufferedWriter bw = null;
            try {
                bw = new BufferedWriter(new FileWriter(file));
                bw.write(sb.toString());
            } finally {
                if(bw != null) {
                    bw.close();
                }
            }
        }
        
        public Map<String, List<DataBean>> getGroupData(String filename) throws IOException {
            return getGroupData(new File(filename));
        }
        
        public Map<String, List<DataBean>> getGroupData(File file) throws IOException {
            Map<String, List<DataBean>> map = new HashMap<String, List<DataBean>>();
            BufferedReader br = null;
            try {
                br = new BufferedReader(new FileReader(file));
                Pattern pattern = Pattern.compile(Pattern.quote(DataBean.SEAPARATOR));
                for(String str = null; (str = br.readLine()) != null; ) {
                    DataBean bean = new DataBean();
                    String[] data = pattern.split(str);
                    bean.setData1(data[0].trim());
                    bean.setNumber(data[1].trim());
                    bean.setData3(data[2].trim());
                    bean.setDate(DataBean.parseDate(data[3].trim()));                
                    String type = data[4].trim();
                    bean.setType(type);
                    List<DataBean> beans = map.get(type);
                    if(beans == null) {
                        beans = new ArrayList<DataBean>();
                        map.put(type, beans);
                    }
                    beans.add(bean);                
                }
            } finally {
                if(br != null) {
                    br.close();
                }
            }
            return map;
        }
    }class DataBean {
        public final static SimpleDateFormat DATA_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        public final static String SEAPARATOR = "|";
        
        private String data1;
        private String number;
        private String data3;
        private Date date;
        private String type;
        
        public static Date parseDate(String date) {
            if(date == null || date.trim().length() == 0) {
                return new Date();
            }
            Date d = null;
            try {
                d = DATA_FORMAT.parse(date);
            } catch (ParseException e) {
                System.out.println("Date Format ERROR! Using Current Date");
                d = new Date();
            }
            return d;
        }
        
        public static Comparator<? super DataBean> getDateComparator() {
            return new Comparator<DataBean>() {
                public int compare(DataBean o1, DataBean o2) {                
                    return o1.getDate().compareTo(o2.getDate());
                }            
            };
        }
        
        public StringBuffer toBufferString(StringBuffer sb) {
            sb.append(data1).append(SEAPARATOR);
            sb.append(number).append(SEAPARATOR);
            sb.append(data3).append(SEAPARATOR);
            sb.append(DATA_FORMAT.format(date)).append(SEAPARATOR);
            sb.append(type);
            return sb;
        }
        
        public String getData1() {
            return data1;
        }
        public void setData1(String data1) {
            this.data1 = data1;
        }
        public String getNumber() {
            return number;
        }
        public void setNumber(String number) {
            this.number = number;
        }
        public String getData3() {
            return data3;
        }
        public void setData3(String data3) {
            this.data3 = data3;
        }
        public Date getDate() {
            return date;
        }
        public void setDate(Date date) {
            this.date = date;
        }
        public String getType() {
            return type;
        }
        public void setType(String type) {
            this.type = type;
        }
    }
      

  5.   

    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.regex.Pattern;
     一个