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
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
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;
}
}
댓글
댓글 쓰기