findFirst.java 2.68 KB
import com.lottery.common.contains.lottery.TerminalType;

import java.io.*;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

/**
 * Created by liuchong on 2017/5/21.
 * Copyright(c) 2017 quanmincai Co., Ltd.
 * All right reserved.
 */
public class findFirst {

    public static String filePath = "/Users/liuchong/Downloads/log";
    private static Set<String> allTicket = new HashSet<String>();

    static{
        allTicket.add("97add7a491e9a3ad54c02db3867e4c7d");
        allTicket.add("96997cb310aefc30b0b458daf096bc2d");
        allTicket.add("c9ef50ec7adad1d4ffa3756f9aee7e54");
        allTicket.add("dc3f5fb7aa2f979df70102e0729465bb");
        allTicket.add("dd62a1be7312bd859ac95855da6506f8");
        allTicket.add("e2edcfde035742874787ad9728f91848");

    }

    public static void main(String[] args)  throws Exception{
        File file =  new File(filePath);
        File[] files =file.listFiles();
        Map<String,Set<String>> terminalTicket = new HashMap<String, Set<String>>();
        if (files.length!=allTicket.size()){
            System.out.println("解析出的文件个数与实际票数不符。解析文件个数是:"+files.length+"实际票数是:"+allTicket.size());
        }else {
            System.out.println("实际票数是:"+allTicket.size());
        }
        for (File file1 : files) {
            BufferedReader fileRead= new BufferedReader(new FileReader(file1));
            String[] line = fileRead.readLine().substring(0,100).split("\\|");
            System.out.println(file1.getName());
            System.out.println(file1.getName() +"    "+line[3]);
            if (terminalTicket.containsKey(line[3])){
                Set<String> ticketSet = terminalTicket.get(line[3]);
                ticketSet.add(file1.getName());
            }else {
                Set<String> ticketSet = new HashSet<String>();
                ticketSet.add(file1.getName());
                terminalTicket.put(line[3],ticketSet);
            }

        }
        //写入文件
        BufferedWriter fileWriter = null;
        for (Map.Entry<String,Set<String>> entry : terminalTicket.entrySet()) {
            System.out.println("Key = " + entry.getKey() +"size :"+entry.getValue().size()+ ", Value = " + entry.getValue());
            Set<String> ticketSet = entry.getValue();
            String name = TerminalType.get(Integer.parseInt(entry.getKey())).getName();
            fileWriter = new BufferedWriter(new FileWriter(new File(name)));
            for (String s : ticketSet) {
                fileWriter.write(s);
                fileWriter.newLine();
            }
            fileWriter.flush();
            fileWriter.close();
        }

    }
}