求助!用Java读取dat文件并处理数据,输出! 10C

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文件。

0

3个回答

发现写错了、、、
下面是正确的

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();
}       

}

0
StressedOut
StressedOut 回复huixion: 代码写的不错,提个小建议加注释就更好了![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/79.gif)
3 年多之前 回复
StressedOut
StressedOut 回复huixion: 代码写的不错,提个小建议加注释就更好了![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/79.gif)
3 年多之前 回复
huixion
边缘颓废之 回复jrewin: 文件路径不用弄错了
3 年多之前 回复
huixion
边缘颓废之 回复jrewin: 按照你给的那两个文件内容是可以的,你看一下你文件内容是不是那里没有用 “,”隔开了
3 年多之前 回复
jrewin
奋进的贝塔 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1 这是为什么?您那能运行?
3 年多之前 回复

把a.txt b.txt,c.txt 分别改为.dat就可以了

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];
       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);
              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();
}       

}

0
huixion
边缘颓废之 回复jrewin: 都是JDK1.1的
3 年多之前 回复
jrewin
奋进的贝塔 回复huixion: 前辈,我被要求必须用jdk1.4,是不是就用不了这个了?望指导!
3 年多之前 回复

IO流,按行读取,字符串切割,map存储id和money,map中已经存在id则进行money累加,2个文件读取完成,输出map值到c.dat

1
jrewin
奋进的贝塔 回复StressedOut: 前辈,求完整代码…
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
MATLAB之生成/读取.dat文件,生成/读取.mat文件,对一维数组的处理与画图
1、生成/读取.dat文件 由于需要将一串序列数据(.mat格式)转化为Gnuradio发送端的,dat格式,作为波形输出,故特此说明。 生成.dat文件 fid=fopen('保存路径\文件名.dat','a'); %自动生成.dat文件 fwrite(fid,y,'float32'); %将y指代的内容写入.dat文件 fclose(fid); 读取.dat文件 fid=fop...
matlab读取并显示遥感dat图像
主要使用multibandread函数读取dat文件,显示单波段图像,多波段可以按波段显示,详细方法前面有解释,multibandread函数的参数可以根据自己的hdr文件输入
菜鸟速成记-IDL读取显示dat文件
IDL读取dat文件
java 解析dat文件实例
用java读取dat文件类型的数据,其中是代码的实例说明,简单易懂,例子很实际
Java如何读取数据文件,如txt文件或者.dat文件 中的内容
在实际工作中, 我们需要读取一些报表之类的数据文件, 这些文件一般可以是.dat .txt 格式的 , 那么如何读取呢? 下面案例以 .txt 为例.  package wxy.IO; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOExc
python批量处理dat文件及科学计算
python批量处理dat文件及科学计算摘要:近年来,python在编程语言中的地位稳步提升,虽然大多数人的第一门编程语言都是C,但之后则鲜有闻之。那为什么选择python呢?坦率的说,没什么理由,什么顺手用什么,但正式来说,python以其简洁的语言格式以及强大的库函数功能奠定了其不菲的身价。
IDL读取数据文件程序整理
提供了IDL读取ASCII码数据程序的诸多示例,同时整理了一些编写程序可能遇到的问题。
MATLAB读入并处理全球DAT格式气温数据
该脚本读取从 https://crudata.uea.ac.uk/cru/data/hrg/下载的全球.dat格式的气温数据。网站对源数据进行了说明:360*720是全球一个月的数据,然后第二个月接在后面。本次读的是1901-1910年全球气温数据,所以dat文件为43200行*720列。
调用Cplex中.mod和.dat的两种方法
最近一直在使用Cplex Optimization Studio优化软件,它使用OPL建模语言在.mod文件中编写数学模型,在.dat数据文件中进行模型参数的赋值,编写规则简便,具有良好的可读性。 因此,小编首先在Cplex中编写基本的模型文件和数据文件表达目标函数、约束条件、模型参数,然后还希望实现对数据进行预处理,改变模型参数重新运行模型以及数据输出处理等功能,而这些功能的实现往往伴随着重复使
C#读取DAT文件文件,生成图像,并保存图像至数据库
C#实现对压缩的DAT图像数据文件的读取,将二进制数据文件按照一定的尺寸还原为bmp图像文件,显示在界面上,同时可以实现将二进制图像保存在数据库中
Dat文件的输入与输出
本文代码来源于:https://blog.csdn.net/zy19940906/article/details/49659895 #pragma once #ifndef _STRUCT_H_ #define _STRUCT_H_ #include<vector> #include<iostream> #include <string> using n...
matlab的.dat文件读取
当使用MATLAB中load读取dat文件 >> load('I:\P0000701.DAT'); ??? Error using ==> load Number of columns on line 1 of ASCII file I:\P0000701.DAT must be the same as previous lines. 正确的读取方法: fileID =
python pandas 读取.txt .dat 文件时,跳读头文件,并把数据读成数组
# -*- coding: utf-8 -*- """ Created on Wed Mar 21 19:03:02 2018@author: Administrator """import pandas as pd import numpy as np path1= '/home/chenze/MSTdata/xh-mst20120424' path=path1+'/XHT_MST01_DJH_
python对CSV、Excel、txt、dat文件的处理
1、读取1.1基于python csv库#3.读取csv至字典x,y import csv# 读取csv至字典 csvFile = open(r'G:\训练小样本.csv', "r") reader = csv.reader(csvFile) #print(reader)# 建立空字典 result = {}i=0 for item in reader: if reader.line_num
MATLAB读取dat文件
在MATLAB环境下读取dat文件,读取之后文件以结构体形式存在,仅适合数字类型
MATLAB读取PhysioNet数据的简单方法
进入网站 https://physionet.org/ 1.从PhysioBank Database Index-->ECG Databases-->ANSI/AAMI EC13 TestWaveforms,然后下载列表中的dat文件,比如aami3a.dat 2.打开matlab,将文件aami3a.dat直接拖入命令区,输入命令行: fid= fopen('文件路径')   ...
Qt创建dat文件问题
文件路径中不能含有“:”符号。我在设置文件名的时候,使用了QDateTime获得系统时间,但是在转Qstring过程中在时分秒中加入":"作为分隔号,导致文件创建失败...
利用matlab编写的读取ENVI软件保存的dat图像格式程序
本函数读取ENVI软件保存的dat格式图像数据,前提是dat图像显式带有'.dat'后缀名
python读取dat文件时遇到16进制转化成10进制问题
读取一定数量的文件内容 str = '\xff\xff\x01\x01\xfd\xff\x03\x01\xfd\x01' #转化成16进制 import binascii hexS = map(binascii.b2a_hex,str) #map函数批量转化成整型,不用列表推导式 data = map(lambda a:int(a,16),hexS) 结果 data=[
IDL读取写入csv/tif/dat文件
读数据: WRITE_CSV,outfilename,data read_tiff(outfilename,geotiff=geoinfo) ​ ;读取csv ;也可以这样 thesefiles = FILE_SEARCH('ice_multiplier_table.csv') table=intarr(9,7) openr,lun,thesefiles[0],/get_lun ...
在matlab中打开.dat文件,并将数据载入为二维矩阵
filein='name.dat'; fid=fopen(filein,'rb'); %打开数据文件 data=fread(fid,[x,y],'double'); %读取文件数据 fclose(fid); %关闭文件 x和y分别是矩阵的行和列...
C++读dat文件
编程实现简易的学生成绩管理系统。 (1)文件score.dat中存放了30名学生的序号和6次考试成绩,请从该文件中读取数据; (2)计算每名学生的总分; (3)输出总分最高和最低的学生序号及分数; (4)根据输入的学生序号,输出该生各次考试成绩和平均成绩; 各要求比较简单,我只实现读数据部分,将结果存在结构体中,也可以存在vector中。 代码如下: #include #inclu
MATLAB批量导入.dat文件
MATLAB批量导入.dat数据
读取dat文件的matlab代码
一种读取dat文件的matlab代码
求问C++读取dat文件并将数据存成一个矩阵怎么写
想根据坐标位置,把图片中第三列的数据存成一个矩阵的形式应该怎么写代码?
读取dat文件
/** * 读取assest下的dat文件 * */ private static String readPromoter(Activity activity) { String fileName = "promoter.dat"; //文件名字 String res=""; try{ //得到资源中的asset数据流 InputStream in = activity.g
读取比特币区块链的blk.dat信息
如果下载了bitcoin的客户端,就会自动同步链上数据,把许多blk*****.dat等下载到电脑里,这个blk.dat里保存着区块的信息,里面是用十六进制编写的内容,为了能把这些数据信息解析出来,我们可以使用一些工具,例如bitcoinj,python-bitcoin-blockchain-parser。 但是,在我使用bitcoinj,从blk00976开始,由于使用了Segwit技术,使得编...
Opencv读取.dat格式CT数据
CT图片.dat格式数据读取和显示。
用ibaFiles组件读写iba实时数据文件的方法
想做一下这方面的事情,可是ibafiles这个文件总是找不到下载的,这里的下载又要钱,嗨。
java按行读取文件并输出 示例
  ===========》》》    完整代码: import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.util.ArrayList; public class ReadByLine { private String fileName; private Ar...
Qt 读取16进制的data文件
vs中有格式化输入,qt中也有自己的,适合新手
【matlab】【数据转换工具】以列、行、矩阵形式导出dat数据文件
% MATLAB生成DAT文件 %设置两个叠加信号的频率分别为10hz,100hz,采样频率400hz,采样点数400,采样时间1S。 f1=10;f2=100;fs=400;N=400; x = linspace(0,N/fs,N); y1 = sin(2*pi*f1*x); y2 = sin(2*pi*f2*x); y=y1+y2; %创建文件sine.dat,可写入 fid=fope
CCS5.5从硬盘读入.dat数据格式的单张图像
当我们使用CCS5.5编写处理单张图像的算法工程时,涉及到如何导入硬盘里的图像数据到DSP指定内存里的问题。下面做一下介绍: 1、使用MATLAB将需要导入的图像转换成DSP能识别格式的二进制(.dat)文件; 2、在CCS5.5的Tools-->Load Memory里加载数据; 3、运行算法(我的是单张图像的FFT及扩展2倍大小加入退化函数,然后滤波IFFT,以后会再写一)
Java读取文件内容并输出的最简单的方式之一(只需三行代码)
这次我使用的读取文件内容的方法所利用的是java的Scanner类。在我们初学 java的过程中Scanner类大多用于获取用户的键盘的输入,因为Scanner类确实是一个 很好用的获取用户的键盘输入。不过Scanner在获取输入的时候并不仅仅限于获取键盘输入的System.out,通过查看api文档我们可以看到实例化Scanner的时候我们可 以传入InputStream,File,Path
matlab读取envi影像(亲测可用)
matlab读取envi标准格式影像
C语言读取dat文件
C语言文件读写。针对dat文件的读写。 注意文件路径。
使用 Python 操作文件(对文件读取与写入)
1.0 打开与关闭 open(“文件名”,”打开方式”) .close() 打开文件时的文件名包括地址和后缀;打开方式如下表 举个栗子: f = open("text.txt",r) # 只读方式打开同目录下的text.txt f.close() # 关闭这个文件 2.0 写入 .write(“要写入的内容”) ...
sgy地震波数据文件及MATLAB处理sgy文件的程序!
sgy数据文件,和网上流传的在MALTAB中sgy文件的处理程序,包含读,写等!
Matlab如何从dat或者txt文件读入数据
Matlab中可以使用命令:   load   'data.dat'  , 或者  load   'data.txt' ;   或者   data_in  =  textread('data.txt'),  data_in  =  textread('data.dat')。 以上两个命令,只适用于纯数据,且只有一列的情况。并且如果txt,dat文件不在当前目录下,需要添加文件的绝对路径
读取心电图txt格式文件数据并且显示的app
这个一个读取心电图数据的app,大家可以在手机的存储txt文件的数据,并修改代码中的文件地址,即可运行app看到心电图就在我们的手机上面刷新显示出来了
相关热词 c#串口测试应用程序 c# 匹配 正则表达式 c#防止窗体重绘 c#读写txt文件 c#挖地雷源代码 c#弹框选项 c# 移除 队列 c# 密码写入配置文件 c# 获取可用内存大小 c# 嵌入excel编辑