文件解析工具类
package com.example.demo.util;import lombok.extern.slf4j.Slf4j;import java.io.*;
import java.util.ArrayList;
import java.util.List;/*** 文件解析公共工具類** @author gblfy* @date 2020-10-13*/
@Slf4j
public class FileUtil {//----------------------------------------文件解析單元測試----------------------------------------public static void main(String[] args) throws IOException {//FileUtil fileUtil = new FileUtil();String[] fileParseMsg = fileUtil.fileParse("D:\\cmiip_Dir\\S_I_0000000001_020\\");String v1 = fileParseMsg[0];String v2 = fileParseMsg[1];// String v3 = fileParseMsg[2];// String v4 = fileParseMsg[3];// String v5 = fileParseMsg[4];log.debug("保單號: {} 客戶姓名: {}", v1, v2);//D:\cmiip_Dir\S_I_0000000001_020\S_I_0000000001_020.txt文件內(nèi)容如下://001|雨昕|中國山東|喜歡穿新衣服|可愛}/*** 文件解析** @param localErrorTxtPath 應(yīng)用本地待解析的文件路徑*/public String[] fileParse(String localErrorTxtPath) {BufferedReader bw = null;try {List<String> listfile = new ArrayList<String>();// 存放控制文件的集合File file = new File(localErrorTxtPath);File[] f1 = file.listFiles();for (int i = 0; i < f1.length; i++) {// 現(xiàn)獲取對應(yīng)的解析文件中的信息System.out.println("list集合中的數(shù)據(jù):" + f1[i].getName());if (f1[i].getName().endsWith(".txt")) {listfile.add(f1[i].getName());System.out.println("把需要的解析的txt文件放入到集合中:" + f1[i].getName());continue;}}for (int i = 0; i < listfile.size(); i++) {String filename = listfile.get(i);bw = new BufferedReader(new InputStreamReader(new FileInputStream(localErrorTxtPath+ filename), "utf-8"));String message = null;while ((message = bw.readLine()) != null) {// 此方法具體處理數(shù)據(jù)文件中的每條客戶信息return dealErrorTxtInfo(message, filename);}}} catch (IOException e) {e.printStackTrace();} finally {try {if (bw != null) {bw.close();}} catch (IOException e) {e.printStackTrace();}}return null;}/*** 此方法用于具體處理數(shù)據(jù)文件中的每條數(shù)據(jù)信息 |(分隔符)*/private String[] dealErrorTxtInfo(String message, String filename) {System.out.println("文件名稱:" + filename + " , 處理的數(shù)據(jù)信息為:" + message);// "||"作為分隔符,正確的寫法為:str.split("\\|\\|")String[] contextStr = message.split("\\|", -1);System.out.println("總字段長度為:" + contextStr.length);return contextStr;}
}
總結(jié)
- 上一篇: Apache ActiveMQ 各个版本
- 下一篇: 权限管理快速入门_01