Java解析文件内容
本文主要实现对.chk文件的解析,将其内容读出来,存入到一个Map中,文件内容实例为:
A0500220140828.CHK
A05002 |34622511 |373532879 |3
识别分隔符|,代码如下所示:
package com.src.factory; import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.LinkedHashMap;
import java.util.Map; import org.apache.log4j.Logger; public class ChkFileParseFactroy { static Logger logger = Logger.getLogger(ChkFileParseFactroy.class); /**
* @Title: fileParsing
* @Description: TODO(这里用一句话描述这个方法的作用)
* @最后修改时间:Aug 14, 2014 11:02:26 AM
* @param fileReader
* @throws IOException 对方法的参数进行描述
* @return Map<String,String> 返回类型
*/
public Map<String, String> fileParsing(File file) { if(file == null ){
return null;
} Map<String, String> fileReadMap = new LinkedHashMap<String, String>();
String alineString = null;
BufferedReader bufferedReader = null;
FileReader fileReader = null;
try {
fileReader = new FileReader(file);
bufferedReader = new BufferedReader(fileReader);
alineString = bufferedReader.readLine(); //读取第一行数据
if (alineString != null) { //判断文件是否为空
String[] readArray = alineString.split("\\|"); //拆分读取的数据
if(readArray.length == 4){ //判断文件格式是否符合
fileReadMap.put("interNo", readArray[0]); //Map第一个键存放接口号
fileReadMap.put("totalNum", readArray[1]); //Map第二个键存放记录条数
fileReadMap.put("fileSize", readArray[2]); //Map第三个键存放文件大小
fileReadMap.put("fileNum", readArray[3]); //Map第四个键存放文件数
} else {
logger.error("Error of File Format!");
}
} else {
logger.error("The File is Empty!");
}
} catch (IOException e1) {
e1.printStackTrace();
} finally { try{
if(null != bufferedReader)
bufferedReader.close();
}catch(Exception e){
e.printStackTrace();
}
try{
if(null != fileReader)
fileReader.close();
}catch(Exception e){
e.printStackTrace();
}
}
return fileReadMap;
}
}
示例文件解析后显示为:
{interNo=A05002 , totalNum=34622511 , fileSize=373532879 , fileNum=3}
本文出自 “Forever Love” 博客,转载请务必保留此出处http://www.cnblogs.com/dwf07223/p/3999204.html。
Java解析文件内容的更多相关文章
- java swing文件内容检索工具
Java相关技术 - 文件内容检索工具 拿到一个几百M甚至上G的project让你去学习 有时候你会想知道某个关键词是在哪个文件里 比如:spring MVC配置的@RequestMapping,你从 ...
- java解析文件
遇到两个小坑: 1.使用String.split,部分分隔符需要转义:https://www.cnblogs.com/mingforyou/archive/2013/09/03/3299569.htm ...
- java读取文件内容常见几种方式
①随机读取文件内容 ②以行为单位读取文件,常用于读面向行的格式化文件 ③以字符为单位读取文件,常用于读文本,数字等类型的文件 ④以字节为单位读取文件,常用于读二进制文件,如图片.声音.影像等文件 pa ...
- java读取文件内容
获取文件内容 picurl = "http://www.baidu.com/data.txt"; URL urlfile = new URL(picurl); BufferedRe ...
- java修改文件内容
文件的读和写,大家都不陌生,但是修改呢?按照普通的读写流去修改的话,只能全部读取出来,在内存中修改好后,全部写进去,这样对于文件内容过多的时,性能很低. 最近在遇到这个问题的时候,发现RandomAc ...
- Java追加文件内容的三种方法
import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io. ...
- Springboot 上传excel并解析文件内容
最近在做一个物业的系统,需要通过excel上传业主的信息,解析并入库. 参考:https://www.cnblogs.com/jyyjava/p/8074322.html 话不多说,直接上核心代码 i ...
- java读取文件内容并输出到控制台,java中实现文件复制
public class TestFileInputStream { public static void main(String [] args) { //读取指定文件中内容,并在控制台输出 Fil ...
- java 实现文件内容的加密和解密
package com.umapp.test; import java.io.FileInputStream; import java.io.FileOutputStream; import java ...
随机推荐
- 深入Java线程管理(一):线程的实现方式
Java的线程实现方式一共有三种,继承Thread.实现Runable接口,实现Callable接口.不过实现Runnable接口与实现Callable接口的方式基本相同,只是Callable接口里定 ...
- hdu 2126 Buy the souvenirs(记录总方案数的01背包)
Buy the souvenirs Time Limit: 10000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- springboot activiti工作流简单示例
最近一直研究springboot,根据工作需求,工作流需要作为一个单独的微服务工程来提供给其他服务调用,现在简单的写下工作流(使用的activiti)微服务的搭建与简单使用 jdk:1.8 数据库:m ...
- Python--day63---出版社增删查改开发流程回顾
1,第一步:对应url 2,第二步:views.py 3,第三步:views.py中的函数中利用ORM去数据库中操纵数据 4,第四步:Django模板语言实现字符串替换 5,第五步:取出publish ...
- [转]java常用正则表达式
只能输入数字:"^[0-9]*$". 只能输入n位的数字:"^\d{n}$". 只能输入至少n位的数字:"^\d{n,}$". 只能输 ...
- 【codeforces 761B】Dasha and friends
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- poj 3275 "Ranking the Cows"(DFS or Floyd+bitset<>)
传送门 题意: 农场主 FJ 有 n 头奶牛,现在给你 m 对关系(x,y)表示奶牛x的产奶速率高于奶牛y: FJ 想按照奶牛的产奶速率由高到低排列这些奶牛,但是这 m 对关系可能不能精确确定这 n ...
- HDU 1711 Number Sequence (KMP 入门)
Number Sequence Problem Description Given two sequences of numbers : a[1], a[2], ...... , a[N], and ...
- ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(4)之业务仓储工厂
在创建业务层之前,我们先来熟悉一下业务仓储工厂Bobo.Repository.dll程序集,后续的业务操作,我们都将通过这个程序集中的方法传递数据库操作,其介于数据库操作与业务层之间,详情可前往< ...
- childNodes和children
childNodes 返回指定元素的子节点集合,包括HTML节点,所有文本(元素之间的空格换行childNodes会看作文本节点). 通过nodeType来判断节点的类型: 元素 1 属性 2 文本 ...