java读取txt文件并做特殊处理

本文档展示了如何使用Java读取TXT文件,并对其内容进行特殊处理。文件包含基金信息和股票记录,通过电路开关思想实现数据读取与操作。
摘要由CSDN通过智能技术生成

java读取txt文件并做特殊处理

问题描述:txt文本内容如下
		[FILEBEGIN] - [FUNDBEGIN] 之间的内容解析到map中
		[FUNDBEGIN] - [RECORDBEGIN]之间的内容解析到map2中
		[RECORDBEGIN] - [RECORDEND]之间的内容解析到list中

[FILEBEGIN]
Version=1.0
Sender=0F
Receiver=98
SendingDay=20190311
FundNum=1
[FUNDBEGIN]
FundID=159447
FundName=嘎嘎
FundManagementCompany=XX有限公司
UnderlyingIndex=399550
CreationRedemptionUnit=1000000.00
EstimateCashComponent=-9722.68
MaxCashRatio=0.50000
Publish=1
Creation=1
Redemption=1
TotalRecordNum=50
Type=3
TradingDay=20190311
PreTradingDay=20190308
CashComponent=-6876.68
NAVperCU=955667.32
NAV=0.9557
DividendPerCU=0.00
CreationLimit=0.00
RedemptionLimit=133500000.00
[RECORDBEGIN]
0|000002|小明 | 1100|1| 0.21000| | |XSHE |
0|002049|小明2 | 100|1| 0.21000| | |XSHE |
0|030333|小明3 | 900|1| 0.21000| | |XSHE |
0|040423|小明4 | 600|1| 0.21000| | |XSHE |
0|005538|小明5 | 100|1| 0.21000| | |XSHE |
0|070696|小明6 | 100|1| 0.21000| | |XSHE |
[RECORDEND]
[FUNDEND]
[FILEEND]

关键思路

电路开关的思想、打开true 关闭false

      将文本中的[FILEBEGIN]、 [FUNDBEGIN]、[RECORDBEGIN] 设置为标志位,初始值都为false 关闭的意思
	 当文本读到 第一个标志位[FILEBEGIN]的时候, [FILEBEGIN]设置为 true 打开的意思,其余两个为false 关闭的意思
	 同理,当读到 [FUNDBEGIN]的时候,[FUNDBEGIN]设置为 true 打开的意思,其余两个为false 关闭的意思
	 这样就能保证,当前读文本的时候,只在有一种状态下,做当前状态下该做的操作
    //实现代码
    private static Map<String,Object> readFile(String filePath){
   
		FileInputStream fis = null;
		InputStreamReader isr = null;
		BufferedReader br = null;
		String line="";
		boolean FILEBEGIN = false;
		boolean FUNDBEGIN = false;
		boolean RECORDBEGIN = false;
		Map<String,String> fileMap =  new HashMap<String,String>(16);
		Map<String,String> fundMap =  new HashMap<String,String>(16);
		List<Map<String,String>> recordList = new ArrayList<Map<String,String>>();
		Map<String,Object> resultMap =  new HashMap<String,Object>(32);
		try {
   
			fis = new FileInputStream(filePath);
			isr = new InputStreamReader(fis, "gbk");
			//字符集
			//System.out.println("字符集:"+isr.getEncoding()); 
			
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值