本文主要实现对.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
 返回类型     */    public  Map
 fileParsing(File file)  {                if(file == null ){            return null;        }                Map
 fileReadMap = new LinkedHashMap
();        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].trim());        //Map第一个键存放接口号                    fileReadMap.put("totalNum", readArray[1].trim());    //Map第二个键存放记录条数                    fileReadMap.put("fileSize", readArray[2].trim());        //Map第三个键存放文件大小                    fileReadMap.put("fileNum", readArray[3].trim());        //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}