文章目录
今天来分享一下如何解析TXT,话说天天解析Excel表格,突然让我解析Txt的时候我还有一点小懵,好,废话不多说,下面开始.
这是我们要解析的txt文档
第一行我是不需要解析的,但是为了方便大家理解还是解析一下
不好理解的地方我都用注释解释了 应该很好看懂
//解析txt文件
private String readTxt(InputStream is,String fileName, String inputtime) throws IOException {
List<PolicyInfoEntity> records = new ArrayList<PolicyInfoEntity>();//
// 将txt格式的数据存入数组
try {
PolicyInfoEntity pi = new PolicyInfoEntity();
//接受传入的流 改为gbk编码
InputStreamReader isr = new InputStreamReader(is,"GBK");
BufferedReader br = new BufferedReader(isr);
String lineTxt = br.readLine();// 读取文件的方法
String[] firstLine = lineTxt.split(","); // 读第一行 按,进行切割
String time = firstLine[0];
String ID = firstLine[1];
String sonid = firstLine[2];
String workname = firstLine[11];
//验证每一行是否为空 数据为空不执行
while ((lineTxt = br.readLine()) != null) {
String[] arrStrings = lineTxt.split(","); // 用于把一个字符串分割成字符串数组
pi.setFileName(fileName);
pi.setInsuranceNo(arrStrings[3].toString().substring(1,arrStrings[3].length()-1));
pi.setContNo(arrStrings[1].toString().substring(1,arrStrings[1].length()-1));//
pi.setPrintDate(arrStrings[0].toString().substring(1,arrStrings[0].length()-1));
pi.setServiceCode(arrStrings[2].toString().substring(1,arrStrings[2].length()-1));// 当前持有人工号
pi.setServiceName(arrStrings[9].toString().substring(1,arrStrings[9].length()-1));//
pi.setExportDate(inputtime);
records.add(pi); // 用set方法将取值分别添加到对应字符串数组 ,用add方法存入list
}
//关闭输入流
br.close();
} catch (Exception e) {
System.out.println("文件读取错误!");
}
if(records!=null &&records.size()>0){
policyInfoService.insertPolicyInfo(records);
}
return "导入成功";
}
然后是效果图,因为我是要再从前台获取,就简单展示一下,不单独写个demo展示
怎么样是不是很简单!