本文主要实现对.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解析文件内容的更多相关文章

  1. java swing文件内容检索工具

    Java相关技术 - 文件内容检索工具 拿到一个几百M甚至上G的project让你去学习 有时候你会想知道某个关键词是在哪个文件里 比如:spring MVC配置的@RequestMapping,你从 ...

  2. java解析文件

    遇到两个小坑: 1.使用String.split,部分分隔符需要转义:https://www.cnblogs.com/mingforyou/archive/2013/09/03/3299569.htm ...

  3. java读取文件内容常见几种方式

    ①随机读取文件内容 ②以行为单位读取文件,常用于读面向行的格式化文件 ③以字符为单位读取文件,常用于读文本,数字等类型的文件 ④以字节为单位读取文件,常用于读二进制文件,如图片.声音.影像等文件 pa ...

  4. java读取文件内容

    获取文件内容 picurl = "http://www.baidu.com/data.txt"; URL urlfile = new URL(picurl); BufferedRe ...

  5. java修改文件内容

    文件的读和写,大家都不陌生,但是修改呢?按照普通的读写流去修改的话,只能全部读取出来,在内存中修改好后,全部写进去,这样对于文件内容过多的时,性能很低. 最近在遇到这个问题的时候,发现RandomAc ...

  6. Java追加文件内容的三种方法

    import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io. ...

  7. Springboot 上传excel并解析文件内容

    最近在做一个物业的系统,需要通过excel上传业主的信息,解析并入库. 参考:https://www.cnblogs.com/jyyjava/p/8074322.html 话不多说,直接上核心代码 i ...

  8. java读取文件内容并输出到控制台,java中实现文件复制

    public class TestFileInputStream { public static void main(String [] args) { //读取指定文件中内容,并在控制台输出 Fil ...

  9. java 实现文件内容的加密和解密

    package com.umapp.test; import java.io.FileInputStream; import java.io.FileOutputStream; import java ...

随机推荐

  1. 提高github下载速度的方法【100%有效】可达到2MB/s

    因为大家都知道的原因,在国内从github上面下载代码的速度峰值通常都是20kB/s.这种速度对于那些小项目还好,而对于大一些的并且带有很多子模块的项目来讲就跟耽误时间.而常见的的方法无非就是修改HO ...

  2. html设计时 img与元素存在间距的处理

    在学习开发笔书奇小说网站时,遇到一下问题 问题点: 在初始化CSS中设置了img的padding和margin为0,可是在插入img后,img与父元素仍然有一定间距. 原因分析: 文字图片等inlin ...

  3. lavarel 响应宏

    宏的概念 计算机里的宏是批量处理的意思.比如我们在进行文本编辑的时候,打错字会有回退的功能——control+z:但是这是我们的键盘操作,计算机在进行处理的时候是不能理解的,他必须对最近两次操作进行比 ...

  4. [转]ECMAScript 2016,2017 和 2018 中所有新功能的示例

    很难追踪 JavaScript(ECMAScript)中的新功能. 想找到有用的代码示例更加困难. 因此,在本文中,我将介绍 TC39 已完成 ES2016,ES2017 和 ES2018(最终草案) ...

  5. [转]Redis哨兵模式(sentinel)学习总结及部署记录(主从复制、读写分离、主从切换)

    Redis的集群方案大致有三种:1)redis cluster集群方案:2)master/slave主从方案:3)哨兵模式来进行主从替换以及故障恢复. 一.sentinel哨兵模式介绍Sentinel ...

  6. <Catalan>杨辉三角实现卡特兰数计算方法

    h(n)=C(2n,n)-C(2n,n-1) #include<cstdio> #define siz 20 using namespace std; int n; ][siz]; int ...

  7. 2019-9-2-win10-uwp-获得焦点改变

    title author date CreateTime categories win10 uwp 获得焦点改变 lindexi 2019-09-02 12:57:38 +0800 2018-2-13 ...

  8. mysql高可用解决方案

    浅谈mysql主从复制的高可用解决方案 1.熟悉几个组件(部分摘自网络)1.1.drbd     —— DRBD(Distributed Replicated Block Device),DRBD号称 ...

  9. 网易Java高级开发课程随笔

    java学习也有6个月之久,记录下课程相关知识点,目前我还没有掌握,so仅作技术点记录 鉴于在.NET上我封装了一套开发框架,虽去年按.NET封装的思路自己也弄了个java开发框架,还是感觉对java ...

  10. slim中返回结果加密的

    //返回结果不加密 $this->get("/open]",function (Request $request, Response $response, $args) {  ...