超简单的Java解析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 "导入成功"; }
怎么样是不是很简单!