Java解析文件内容

本文主要实现对.chk文件的解析,将其内容读出来,存入到一个Map中,文件内容实例为:

A0500220140828.CHK

A05002 |34622511 |373532879 |3

  

识别分隔符|,代码如下所示:

 1 package com.src.factory;
 2
 3 import java.io.BufferedReader;
 4 import java.io.File;
 5 import java.io.FileReader;
 6 import java.io.IOException;
 7 import java.util.LinkedHashMap;
 8 import java.util.Map;
 9
10 import org.apache.log4j.Logger;
11
12 public class ChkFileParseFactroy {
13
14     static Logger logger = Logger.getLogger(ChkFileParseFactroy.class);
15
16     /**
17      * @Title: fileParsing
18      * @Description: TODO(这里用一句话描述这个方法的作用)
19      * @最后修改时间:Aug 14, 2014 11:02:26 AM
20      * @param fileReader
21      * @throws IOException 对方法的参数进行描述
22      * @return Map<String,String> 返回类型
23      */
24     public  Map<String, String> fileParsing(File file)  {
25
26         if(file == null ){
27             return null;
28         }
29
30         Map<String, String> fileReadMap = new LinkedHashMap<String, String>();
31         String alineString = null;
32         BufferedReader bufferedReader = null;
33         FileReader fileReader = null;
34         try {
35             fileReader = new FileReader(file);
36             bufferedReader = new  BufferedReader(fileReader);
37             alineString = bufferedReader.readLine();                //读取第一行数据
38             if (alineString != null) {                                //判断文件是否为空
39                 String[] readArray = alineString.split("\\|");        //拆分读取的数据
40                 if(readArray.length == 4){                            //判断文件格式是否符合
41                     fileReadMap.put("interNo", readArray[0]);        //Map第一个键存放接口号
42                     fileReadMap.put("totalNum", readArray[1]);    //Map第二个键存放记录条数
43                     fileReadMap.put("fileSize", readArray[2]);        //Map第三个键存放文件大小
44                     fileReadMap.put("fileNum", readArray[3]);        //Map第四个键存放文件数
45                 } else {
46                     logger.error("Error of File Format!");
47                 }
48             } else {
49                 logger.error("The File is Empty!");
50             }
51         } catch (IOException e1) {
52             e1.printStackTrace();
53         } finally {
54
55             try{
56                 if(null != bufferedReader)
57                     bufferedReader.close();
58             }catch(Exception e){
59                 e.printStackTrace();
60             }
61             try{
62                 if(null != fileReader)
63                     fileReader.close();
64             }catch(Exception e){
65                 e.printStackTrace();
66             }
67         }
68         return fileReadMap;
69     }
70 }

示例文件解析后显示为:

{interNo=A05002 , totalNum=34622511 , fileSize=373532879 , fileNum=3}

  

时间: 2024-08-01 10:45:52

Java解析文件内容的相关文章

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

①随机读取文件内容 ②以行为单位读取文件,常用于读面向行的格式化文件 ③以字符为单位读取文件,常用于读文本,数字等类型的文件 ④以字节为单位读取文件,常用于读二进制文件,如图片.声音.影像等文件 package com.control; import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileReader;import java.io.IOExcepti

java修改文件内容

文件的读和写,大家都不陌生,但是修改呢?按照普通的读写流去修改的话,只能全部读取出来,在内存中修改好后,全部写进去,这样对于文件内容过多的时,性能很低. 最近在遇到这个问题的时候,发现RandomAccessFile这个类正好能解决我的问题,废话不多说,下面直接贴代码,分享给大家,有不对的地方欢迎指教,谢谢 /**     * 修改文件内容     * @param fileName     * @param oldstr     * @param newStr     * @return  

java读取文件内容

获取文件内容 picurl = "http://www.baidu.com/data.txt"; URL urlfile = new URL(picurl); BufferedReader in = new BufferedReader(new InputStreamReader(urlfile.openStream(),"utf-8")); //utf-8避免中文乱码 String content=""; String inputLine =i

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

import <a href="http://lib.csdn.net/base/17" class='replace_word' title="Java EE知识库" target='_blank' style='color:#df3434; font-weight:bold;'>Java</a>.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream;

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

package com.umapp.test; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.security.Key; import java.security.SecureRandom; import javax.crypto.Cipher; import javax.cr

Java 拷贝文件内容

说明: 把d盘下a.txt 中的内容复制到e盘下e.txt文件中 private static void copyDataBase() { try { File f1 = new File("d:/a.txt"); File f2 = new File("e:/e.txt"); InputStream in = new FileInputStream(f1); OutputStream out = new FileOutputStream(f2); byte[] b

JS获取本地文件并且解析文件内容(XML,TXT)

$(function(){ $("body").on("change", "#file", function (event) { uploadfile(this,event); }) function uploadfile(){ var files = event.target.files, file; if (files && files.length > 0) { // 获取目前上传的文件 file = files[0]

java 读取文件内容 三种形式及效率对比

IOUtils.getStringFromReader() 读取方式为最快的 InputStream in = null; String line = ""; long start=0,end=0; try { start = System.currentTimeMillis(); in = new FileInputStream(new File("D://1.txt")); InputStreamReader stream = new InputStreamRe

Java解析JSON文件的方法(一)

一.首先需要在Eclipse工程中导入相关的jar包,jar包参见链接:http://yunpan.alibaba-inc.com/share/link/NdA5b6IFK 二.提供一份待解析的json文件,apkinfo.json如下: [ { "name":"帐号", "package_name":"com.android.account", "check_version":"1.2"