java之IO流运用—文件内容提取至ArrayList

java之IO流运用—文件内容提取至ArrayList

有以下交易明细:

客户号  姓名  所述机构号  性别  帐号  发生时间  发生金额

000001|刘德华|0000|1|4155990188888888|2006/07/20 20:00:05|300.00
000201|郭富城|0002|1|4155990199999999|2006/07/20 20:00:05|500.00
000101|黄晓明|0012|1|4155990100000000|2006/07/20 20:00:05|1000.50
000101|张东健|0012|1|4155990155555555|2006/07/20 20:00:05|600.99
000301|迪丽热巴|0013|0|4155990111111111|2006/07/22 20:10:05|5000.00
004002|张学友|0000|1|4155990188888888|2006/07/25 20:00:05|200.00

一行是一条交易明细,每行分6列,列间用|分隔。#为注释符号。类TransRecord存储一条明细(金额字段数据类型定为BigDecimal)。解析文件数据至List<TransRecord>。

这个实例中的信息全部在“record.txt”文件中存储,需要将文本数据解析为6个交易记录对象并存入ArrayList中,首先需要使用FileInputStream获取文件输入流,然后将每行文本数据解析为一个交易记录对象,将每个对象添加到数组中,接下来便可对数组进行操作,按照客户号查询记录,按照日期段查询记录,计算总交易金额,按照交易金额排序

分析

要实现上述功能,需创建三个类:

  • TransRecord类:交易记录类,定义交易记录的属性,并重写hashCode和equals,重写toString方法
  • TransRecordManager类:交易记录管理类,声明所有方法并实现
  • TestTransRecord类:测试类,程序主入口

代码如下:

TransRecord类

import java.math.BigDecimal;
import java.util.Date;
/**
 * 交易记录类
 * @author max
 *
 */
public class TransRecord {
	/**客户号*/
	private String num;
	/**姓名*/
	private String name;
	/**机构号*/
	private String jnum;
	/**性别*/
	private String sex;
	/**账号*/
	private String account;
	/**发生时间*/
	private Date time;
	/**发生金额*/
	private BigDecimal cash;
	
	public TransRecord() {
		// TODO Auto-generated constructor stub
	}
	
	
	public TransRecord(String num, String name, String jnum, String sex, String account, Date time, BigDecimal cash) {
		super();
		this.num = num;
		this.name = name;
		this.jnum = jnum;
		this.sex = sex;
		this.account = account;
		this.time = time;
		this.cash = cash;
	}


	public String getNum() {
		return num;
	}
	public void setNum(String num) {
		this.num = num;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getJnum() {
		return jnum;
	}
	public void setJnum(String jnum) {
		th
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值