求助!用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个回答

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

1
jrewin
奋进的贝塔 回复StressedOut: 前辈,求完整代码…
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 年多之前 回复

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

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 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
MATLAB之生成/读取.dat文件,生成/读取.mat文件,对一维数组的处理与画图
1、生成/读取.dat文件nn由于需要将一串序列数据(.mat格式)转化为Gnuradio发送端的,dat格式,作为波形输出,故特此说明。nn生成.dat文件nnfid=fopen('保存路径\文件名.dat','a'); %自动生成.dat文件nfwrite(fid,y,'float32'); %将y指代的内容写入.dat文件nfclose(fid);nn读取.dat文件nnfid=fop...
java 解析dat文件实例
用java读取dat文件类型的数据,其中是代码的实例说明,简单易懂,例子很实际
python pandas 读取.txt .dat 文件时,跳读头文件,并把数据读成数组
# -*- coding: utf-8 -*-n"""nCreated on Wed Mar 21 19:03:02 2018@author: Administratorn"""import pandas as pdnimport numpy as npnpath1= '/home/chenze/MSTdata/xh-mst20120424'npath=path1+'/XHT_MST01_DJH_
MATLAB读取dat文件
在MATLAB环境下读取dat文件,读取之后文件以结构体形式存在,仅适合数字类型
matlab读取并显示遥感dat图像
主要使用multibandread函数读取dat文件,显示单波段图像,多波段可以按波段显示,详细方法前面有解释,multibandread函数的参数可以根据自己的hdr文件输入
Dat文件的输入与输出
本文代码来源于:https://blog.csdn.net/zy19940906/article/details/49659895nnnn#pragma oncen#ifndef _STRUCT_H_n#define _STRUCT_H_nn#include<vector>n#include<iostream>n#include <string>nusing n...
在matlab中打开.dat文件,并将数据载入为二维矩阵
filein='name.dat'; nfid=fopen(filein,'rb'); %打开数据文件ndata=fread(fid,[x,y],'double'); %读取文件数据nfclose(fid); %关闭文件nnx和y分别是矩阵的行和列...
Java如何读取数据文件,如txt文件或者.dat文件 中的内容
在实际工作中, 我们需要读取一些报表之类的数据文件, 这些文件一般可以是.dat .txt 格式的 , 那么如何读取呢?n下面案例以 .txt 为例. npackage wxy.IO;nnimport java.io.BufferedReader;nimport java.io.File;nimport java.io.FileInputStream;nimport java.io.IOExc
C#读取DAT文件文件,生成图像,并保存图像至数据库
C#实现对压缩的DAT图像数据文件的读取,将二进制数据文件按照一定的尺寸还原为bmp图像文件,显示在界面上,同时可以实现将二进制图像保存在数据库中
调用Cplex中.mod和.dat的两种方法
最近一直在使用Cplex OptimizationnStudio优化软件,它使用OPL建模语言在.mod文件中编写数学模型,在.dat数据文件中进行模型参数的赋值,编写规则简便,具有良好的可读性。n因此,小编首先在Cplex中编写基本的模型文件和数据文件表达目标函数、约束条件、模型参数,然后还希望实现对数据进行预处理,改变模型参数重新运行模型以及数据输出处理等功能,而这些功能的实现往往伴随着重复使
IDL读取数据文件程序整理
提供了IDL读取ASCII码数据程序的诸多示例,同时整理了一些编写程序可能遇到的问题。
Matlab如何从dat或者txt文件读入数据
Matlab中可以使用命令:rn  load   'data.dat'  , 或者  load   'data.txt' ;   或者   data_in  =  textread('data.txt'),  data_in  =  textread('data.dat')。rnrnrn以上两个命令,只适用于纯数据,且只有一列的情况。并且如果txt,dat文件不在当前目录下,需要添加文件的绝对路径
利用matlab编写的读取ENVI软件保存的dat图像格式程序
本函数读取ENVI软件保存的dat格式图像数据,前提是dat图像显式带有'.dat'后缀名
MATLAB读入并处理全球DAT格式气温数据
该脚本读取从 https://crudata.uea.ac.uk/cru/data/hrg/下载的全球.dat格式的气温数据。网站对源数据进行了说明:360*720是全球一个月的数据,然后第二个月接在后面。本次读的是1901-1910年全球气温数据,所以dat文件为43200行*720列。
菜鸟速成记-IDL读取显示dat文件
IDL读取dat文件
IDL读取写入csv/tif/dat文件
读数据:nnnWRITE_CSV,outfilename,datanread_tiff(outfilename,geotiff=geoinfo)nnn​n;读取csvnn;也可以这样nthesefiles = FILE_SEARCH('ice_multiplier_table.csv')n table=intarr(9,7)n openr,lun,thesefiles[0],/get_lunn...
Qt创建dat文件问题
文件路径中不能含有“:”符号。我在设置文件名的时候,使用了QDateTime获得系统时间,但是在转Qstring过程中在时分秒中加入":"作为分隔号,导致文件创建失败...
Opencv读取.dat格式CT数据
CT图片.dat格式数据读取和显示。
matlab的.dat文件读取
当使用MATLAB中load读取dat文件rn>> load('I:\P0000701.DAT');rn??? Error using ==> loadrnNumber of columns on line 1 of ASCII file I:\P0000701.DAT must be the same as previous lines.rnrnrnrnrn正确的读取方法:rnfileID =
MATLAB批量导入.dat文件
MATLAB批量导入.dat数据
python批量处理dat文件及科学计算
python批量处理dat文件及科学计算摘要:近年来,python在编程语言中的地位稳步提升,虽然大多数人的第一门编程语言都是C,但之后则鲜有闻之。那为什么选择python呢?坦率的说,没什么理由,什么顺手用什么,但正式来说,python以其简洁的语言格式以及强大的库函数功能奠定了其不菲的身价。
C++读dat文件
编程实现简易的学生成绩管理系统。n(1)文件score.dat中存放了30名学生的序号和6次考试成绩,请从该文件中读取数据;n(2)计算每名学生的总分;n(3)输出总分最高和最低的学生序号及分数;n(4)根据输入的学生序号,输出该生各次考试成绩和平均成绩;n各要求比较简单,我只实现读数据部分,将结果存在结构体中,也可以存在vector中。n代码如下:n#include n#inclu
python读取dat文件时遇到16进制转化成10进制问题
读取一定数量的文件内容rnstr = '\xff\xff\x01\x01\xfd\xff\x03\x01\xfd\x01'rn#转化成16进制rnimport binasciirnrnhexS = map(binascii.b2a_hex,str)rnrn#map函数批量转化成整型,不用列表推导式rndata = map(lambda a:int(a,16),hexS)rnrn结果rndata=[
读取dat文件
/**n* 读取assest下的dat文件n* */nprivate static String readPromoter(Activity activity) {nString fileName = "promoter.dat"; //文件名字nString res="";ntry{nnn//得到资源中的asset数据流nInputStream in = activity.g
c++读写txt与dat文件
1、创建dat/txt文件(若dat文件不存在时)并向其中写入数据nnnn#include <string>n#include <iostream> n#include <fstream> nusing namespace std;nnint main() n{n ofstream outfile("E:\\myfile.dat", ofstream...
C语言读取dat数据
#includenfloat main()n{n int i, j;n float c[5221][10]; //自定义二维数组大小n FILE *p1 = fopen("1.dat", "r"); //1.dat文件放在.c文件所在的文件夹中n if (p1==NULL) //检测是否成功打开n printf("Open failed\n");n for (i = 0; i<5221; i
读取.dat文件所遇到的问题及解决办法
在做实验时需要用到带有乘客状态的出租车GPS轨迹数据。找了很久,发现了一个清华大学复杂工程系统实验室(http://sensor.ee.tsinghua.edu.cn/datasets.html)有该数据。如有需要可以去改网站下载,(我找数据的确找了很久)。rndownload数据后,发现格式是.dat格式。但是该网站给了数据格式:rnrnrntypedef struct _data_unit{r
python对CSV、Excel、txt、dat文件的处理
1、读取1.1基于python csv库#3.读取csv至字典x,yrnimport csv# 读取csv至字典rncsvFile = open(r'G:\训练小样本.csv', "r")rnreader = csv.reader(csvFile)rn#print(reader)# 建立空字典rnresult = {}i=0rnfor item in reader:rn if reader.line_num
C语言读取dat文件
C语言文件读写。针对dat文件的读写。 注意文件路径。
matlab导入dat文件,存储为 矩阵,并抽取一 行或一列
文章目录任务解决方案导入数据抽取矩阵中的一列或一行n任务n手上有一个dat后缀名文件,需要导入matlab,并对其中的每一列数据进行处理。n解决方案n导入数据n如下图所示。nS1 点击 导入数据 按钮,弹出导入数据窗口nS2 选择 范围,因为第一行是标题,所以我不想导入,导入范围从A2开始,到G436结束,这里是选择最左上角和最右下角nS3 选择 输出类型, 我...
求问C++读取dat文件并将数据存成一个矩阵怎么写
n想根据坐标位置,把图片中第三列的数据存成一个矩阵的形式应该怎么写代码?
读取dat文件的matlab代码
一种读取dat文件的matlab代码
Qt 读取16进制的data文件
vs中有格式化输入,qt中也有自己的,适合新手
读取dat数据文件代码
读取dat数据文件代码,对存在.dat文件中的数据存入到一个数组中
C语言读取和写入dat文件 代码
C语言读取和写入dat文件 注意路径 简单明了 仅供参考
c++存取dat数据
众所周知,dat是一个类似加密的二进制格式文件,很多人喜欢将游戏数据保存在dat文件中,只有知道你的存放格式,才能够将数据破解出来,因而研究了dat文件的存取方式。其实就是c++文件的操作,只不过是在取的时候需要按照自己存放的格式获取出来。nn1.struct结构体的格式数据nn      首先定义一个结构体,用以存放存入dat文件的数据,同时,再取的时候按照结构体的格式进行获取操作:
ENVI文件在matlab中的读取
2018.07.21nn皇天在上,终于找到读取的方法了,研究可以继续深入往下走了。nn(1)tiff文件的读取。使用的MATLAB版本为2015bnn[A,R] = geotiffread(filename)nnhttp://ww2.mathworks.cn/help/map/ref/geotiffread.html?searchHighlight=geotiffread&amp;amp;s_tid=do...
【matlab】【数据转换工具】以列、行、矩阵形式导出dat数据文件
% MATLAB生成DAT文件nn%设置两个叠加信号的频率分别为10hz,100hz,采样频率400hz,采样点数400,采样时间1S。nf1=10;f2=100;fs=400;N=400;nx = linspace(0,N/fs,N);ny1 = sin(2*pi*f1*x);ny2 = sin(2*pi*f2*x); ny=y1+y2; nn%创建文件sine.dat,可写入nfid=fope
Java读取文件内容并输出的最简单的方式之一(只需三行代码)
这次我使用的读取文件内容的方法所利用的是java的Scanner类。在我们初学 njava的过程中Scanner类大多用于获取用户的键盘的输入,因为Scanner类确实是一个 n很好用的获取用户的键盘输入。不过Scanner在获取输入的时候并不仅仅限于获取键盘输入的System.out,通过查看api文档我们可以看到实例化Scanner的时候我们可 n以传入InputStream,File,Path
CCS5.5从硬盘读入.dat数据格式的单张图像
当我们使用CCS5.5编写处理单张图像的算法工程时,涉及到如何导入硬盘里的图像数据到DSP指定内存里的问题。下面做一下介绍:n1、使用MATLAB将需要导入的图像转换成DSP能识别格式的二进制(.dat)文件;n2、在CCS5.5的Tools-->Load Memory里加载数据;nnn3、运行算法(我的是单张图像的FFT及扩展2倍大小加入退化函数,然后滤波IFFT,以后会再写一)
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java处理数据学习 java 并发包的学习