最新县及县以上行政区划代码 的数据进行分割 对应的成一级二级 然后对写进数据库就容易了

来源:互联网 发布:测量图片尺寸软件 编辑:程序博客网 时间:2024/04/30 23:00




import java.util.ArrayList;


import com.data94.common.util.filedeal.TxtFileDealUtil;


public class ImportSysDistrictData {
public void importFile(String fileName, ArrayList<MyVO> myVOList) {
MyFileLineDeal myDealFile = new MyFileLineDeal(myVOList);
try {
myDealFile.dealFile(fileName, "utf-8");
} catch (Exception e) {
e.printStackTrace();
}
for (int i = 0; i < myVOList.size(); i++) {
System.out.println(myVOList.get(i));
}
}


public static void main(String[] args) {
ArrayList<MyVO> myVOList = new ArrayList<MyVO>();
String fileName = "\\mywork\\27car\\doc\\01request\\最新县及县以上行政区划代码.txt";
ImportSysDistrictData importSysDistrictData = new ImportSysDistrictData();
importSysDistrictData.importFile(fileName, myVOList);
}


class MyVO {
String code;
String pcode;
String title;
String initial;
String level_one;
String level_two;


public String toString() {
return "[" + code + "," + title + "," + pcode +"," + " "+  "," + level_one + "," + level_two + "]";
}


public String getCode() {
return code;
}


public void setCode(String code) {
this.code = code;
}


public String getPcode() {
return pcode;
}


public void setPcode(String pcode) {
this.pcode = pcode;
}


public String getTitle() {
return title;
}


public void setTitle(String title) {
this.title = title;
}


public String getInitial() {
return initial;
}


public void setInitial(String initial) {
this.initial = initial;
}


public String getLevel_one() {
return level_one;
}


public void setLevel_one(String level_one) {
this.level_one = level_one;
}


public String getLevel_two() {
return level_two;
}


public void setLevel_two(String level_two) {
this.level_two = level_two;
}


}


class MyFileLineDeal extends TxtFileDealUtil {
ArrayList<MyVO> myVOList = null;
String level_one, level_two;


public MyFileLineDeal(ArrayList<MyVO> myVOList) {
this.myVOList = myVOList;
}


public boolean dealLine(String fileIdentity, Object lineData) throws Exception {
if (lineData == null || "".equals(lineData.toString().trim())) {
return true;
}
MyVO myVO = new MyVO();
myVOList.add(myVO);
String[] result1 = ((String) lineData).split(",");
// 第一个参数为code
myVO.setCode(result1[0]);
// 两个参数,第二个为一级行政区划
if (result1.length == 2) {
level_one = result1[0];
myVO.setPcode("0");
myVO.setLevel_one(level_one);
}
// 三个参数,第三个为二级行政区划
else if (result1.length == 3) {
level_two = result1[0];
myVO.setPcode(level_one);
myVO.setLevel_one(level_one);
myVO.setLevel_two(level_two);
}
// 四个参数,第四个为三级行政区划
else if (result1.length == 4) {
myVO.setPcode(level_two);
myVO.setLevel_one(level_one);
myVO.setLevel_two(level_two);
}
myVO.setTitle(result1[result1.length - 1]);


return true;
}


}


}



TxtFileDealUtil  类


package com.data94.common.util.filedeal;


import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;


public abstract class TxtFileDealUtil implements FileDealInterface {
private Integer startLineNum, endLineNum;


public boolean dealFile(String filePath, String encode) throws Exception {
BufferedReader reader = null;
try {
reader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), encode));
String line = null;
boolean goNextLine = true;
int lineNum = 0;
startLineNum = startLineNum == null ? 0 : (startLineNum <= 0 ? 0 : startLineNum);
while (goNextLine && ((line = reader.readLine()) != null)) {
if (lineNum < startLineNum) {
continue;
} else if ((endLineNum != null) && (lineNum > endLineNum)) {
goNextLine = false;
} else {
goNextLine = dealLine(filePath, line);
}
lineNum++;
}
} catch (Exception e) {
throw e;
} finally {
try {
if (reader != null) {
reader.close();
reader = null;
}
} catch (IOException e) {
e.printStackTrace();
}
}
return false;
}


public Integer getStartLineNum() {
return startLineNum;
}


public void setStartLineNum(Integer startLineNum) {
this.startLineNum = startLineNum;
}


public Integer getEndLineNum() {
return endLineNum;
}


public void setEndLineNum(Integer endLineNum) {
this.endLineNum = endLineNum;
}


/**
* 例子

* <pre>

* ArrayList<MyVO> myVOList = new ArrayList<MyVO>();
* String filename = "/a.csv";
* MyFileLineDeal myFileLineDeal = new MyFileLineDeal(filename, myVOList);
* myFileLineDeal.dealFile(filePath, "utf-8");
* class MyVO {

* }
* class MyFileLineDeal extends TxtFileDealUtil {
* // 是否要处理首行为标题行。如果不需要处理或是已经处理,改为false
* boolean hasSkipHeader = false;
* ArrayList<MyVO> myVOList = null;
* String filename = null;

* public MyFileLineDeal(String filename, ArrayList<MyVO> myVOList) {
* this.filename = filename;
* this.myVOList = myVOList;
* }

* &#64;Override
* public boolean dealLine(String fileIdentity, Object lineData) throws Exception {
* if (lineData == null) {
* return true;
* }
* if (!hasSkipHeader) {
* hasSkipHeader = true;
* return true;
* }
* String[] result1 = ((String) lineData).split(",");

* for (int i = 0; i < result1.length; i++) {
* MyVO vo = new MyVO();
* myVOList.add(vo);
* }
* return false;
* }

* }
* </pre>
*/
}

运行部分结果:

[321001,市辖区,321000,  ,320000,321000]
[321002,广陵区,321000,  ,320000,321000]
[321003,邗江区,321000,  ,320000,321000]
[321012,江都区,321000,  ,320000,321000]
[321023,宝应县,321000,  ,320000,321000]
[321081,仪征市,321000,  ,320000,321000]
[321084,高邮市,321000,  ,320000,321000]
[321100,镇江市,320000,  ,320000,321100]
[321101,市辖区,321100,  ,320000,321100]
[321102,京口区,321100,  ,320000,321100]
[321111,润州区,321100,  ,320000,321100]
[321112,丹徒区,321100,  ,320000,321100]
[321181,丹阳市,321100,  ,320000,321100]
[321182,扬中市,321100,  ,320000,321100]
[321183,句容市,321100,  ,320000,321100]

然后把这些数据批量生成insert into 语句插入数据库 就可以了


0 0
原创粉丝点击