Android 시도/시군구/동읍면 데이터 csv 파일 읽어서 insert 하기


Android 시도/시군구/동읍면 데이터 csv 파일 읽어서 insert 하기

초기 csv 파일 초기 부분을 확인

설명보단 소스 ㅎㅎ

private boolean addrParser() {
final String csvFiles = "zipcode.csv";

final ZoneDatabase dbZone = new ZoneDatabase(this);

if (dbZone.getZoneCountbyTotal() != 0) {
return false;
}

ArrayList arrZone = null;

BufferedReader bufferReader = null;
InputStream assetFile = null;

try {
assetFile = context.getAssets().open(csvFiles);

bufferReader = new BufferedReader(new InputStreamReader(assetFile, "MS949"));
arrZone = new ArrayList();
String data = null;

int nowRow = 0;

while ((data = bufferReader.readLine()) != null) {
nowRow++;
String[] str_a = data.toString().split(",");

//  SIDO 정보가 없으면 중지
if (str_a.length == 0
|| str_a[0] == null
|| str_a[0].equals("SIDO")
|| str_a[0].length() == 0) continue;

ZoneObject objZone = new ZoneObject();

int idx = 0;
if (str_a.length > idx++) objZone.setSido(str_a[0]);
if (str_a.length > idx++) objZone.setGugun(str_a[1]);
if (str_a.length > idx++) objZone.setDong(str_a[2]);

arrZone.add(objZone);

if (SSMApplication.DEBUG_MODE) {
Log.i(this.getClass().getName().toString(),"addrParser : "+ objZone.getSido() + " : "+ objZone.getGugun() + " : "+ objZone.getDong());
}

// objZone.insert();

if (nowRow%100 == 0) {
dbZone.insertAll(arrZone);
arrZone = null;
arrZone = new ArrayList();
}
}

dbZone.insertAll(arrZone);

assetFile.close();

} catch (IOException e) {

}

return true;

}



public class ZoneDatabase {

private Context context;
private DataBaseMG dbHelper;
private SQLiteDatabase db;

public ZoneDatabase(Context context) {
this.context = context;
dbHelper = new DataBaseMG(this.context);
}

public Context getContext() {
return (this.context);
}


public long insertAll(ArrayList arrZone) {
long zone_id = 0;

ContentValues initialValues = new ContentValues();

db = dbHelper.getWritableDatabase();

try{
db.beginTransaction();

for (ZoneObject objZone : arrZone) {

if (objZone.getSido() != null)
initialValues.put("sido", objZone.getSido());
if (objZone.getGugun() != null)
initialValues.put("gugun", objZone.getGugun());
if (objZone.getDong() != null)
initialValues.put("dong", objZone.getDong());

zone_id = db.insert(DataBaseMG.ZONE_TABLE, null, initialValues);

if (SSMApplication.DEBUG_MODE) {
Log.i(this.getClass().getName().toString(),"insertAll.zone_id : "+ zone_id);
}
}

db.setTransactionSuccessful();
} catch (SQLException e) {

} finally {
db.endTransaction();
}

zone_id = db.insert(DataBaseMG.ZONE_TABLE, null, initialValues);

db.close();

return zone_id;
}
}

댓글

이 블로그의 인기 게시물

How To Restart Windows Server 2012