开发者社区> 问答> 正文

用Java读取dat文件并处理数据输出

a.dat文件:
id,money
k001,5
k002,21
k003,30
k004,40
k002,20
b.dat文件:
id,money
k002,30
k005,49
k007,50
用java读取以上两个dat文件,统计相同id名下的money总和,并输出c.dat文件。

展开
收起
蛮大人123 2016-06-07 14:54:50 8580 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪
    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;
    
    public class Lianxi
    {
    
    static Map map=new HashMap();
    public static void main(String[] args) throws IOException {
    
    String line = null;
    String a=null,a1 =null;
    String b=null,b1 =null;
    
        BufferedReader in = new BufferedReader(new FileReader("F:\\a.txt"));
        while((line = in.readLine())!=null)
        {
            a=line.split(",")[0];
            b=line.split(",")[1];
    
           if(map.get(a)!=null)
           {   b1= (String) map.get(a);
              map.remove(a);
              int temp=Integer.parseInt(b)+Integer.parseInt(b1);
              String temp1=String.valueOf(temp);
               map.put(a, temp1);  
           }
           else
           {
               map.put(a, b);   
           }
        }
    
        BufferedReader in1 = new BufferedReader(new FileReader("F:\\b.txt"));
        while((line=in1.readLine())!=null)
        {      
                a1=line.split(",")[0];
                b1=line.split(",")[1];  
              if(a1.equals("id"))
              {       
              }
              else
              if(map.get(a1)!=null)
              {   b= (String) map.get(a1);
                  map.remove(a1);
                  int temp=Integer.parseInt(b1)+Integer.parseInt(b);
                 // String temp1=String.valueOf(temp);
                  map.put(a1, temp);  
              }
              else 
              {
                  map.put(a1, b1);
              }
        }
        StringBuffer str = new StringBuffer();
        FileWriter fw = new FileWriter("F:\\c.txt", true);
        Set set = map.entrySet();
        Iterator iter = set.iterator();
        while(iter.hasNext()){
            Map.Entry entry = (Map.Entry)iter.next(); 
            str.append(entry.getKey()+" , "+entry.getValue()+"\r\n");
        }
        fw.write(str.toString());
        fw.close();
    }       
    }
    2019-07-17 19:30:12
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载