[안드로이드] assets 폴더안에 db 파일 자신 앱에 복사하기
public class MySQLiteOpenHelper extends SQLiteOpenHelper {
static String NAME = "testdb.sqlite";
static CursorFactory FACTORY = null;
static String PACKEGE = "com.example.isbnapp";
static String DB = "isbn.db";
static int VERSION = 1;
public MySQLiteOpenHelper(Context context) {
super(context, NAME, FACTORY, VERSION);
// TODO Auto-generated constructor stub
try {
boolean bResult = isCheckDB(context); // DB가 있는지?
Log.i("MiniApp", "DB Check="+bResult);
if(!bResult){ // DB가 없으면 복사
copyDB(context);
}else{
}
} catch (Exception e) {
}
}
// DB가 있나 체크하기
public boolean isCheckDB(Context mContext){
String filePath = "/data/data/" + PACKEGE + "/databases/" + DB;
File file = new File(filePath);
if (file.exists()) {
return true;
}
return false;
}
// DB를 복사하기
// assets의 /db/xxxx.db 파일을 설치된 프로그램의 내부 DB공간으로 복사하기
public void copyDB(Context mContext){
Log.d("MiniApp", "copyDB");
AssetManager manager = mContext.getAssets();
String folderPath = "/data/data/" + PACKEGE + "/databases";
String filePath = "/data/data/" + PACKEGE + "/databases/" +DB;
File folder = new File(folderPath);
File file = new File(filePath);
FileOutputStream fos = null;
BufferedOutputStream bos = null;
try {
InputStream is = manager.open("db/" + DB);
BufferedInputStream bis = new BufferedInputStream(is);
if (folder.exists()) {
}else{
folder.mkdirs();
}
if (file.exists()) {
file.delete();
file.createNewFile();
}
fos = new FileOutputStream(file);
bos = new BufferedOutputStream(fos);
int read = -1;
byte[] buffer = new byte[1024];
while ((read = bis.read(buffer, 0, 1024)) != -1) {
bos.write(buffer, 0, read);
}
bos.flush();
bos.close();
fos.close();
bis.close();
is.close();
} catch (IOException e) {
Log.e("ErrorMessage : ", e.getMessage());
}
}
/** Called when the activity is first created. */
@Override
public void onCreate(SQLiteDatabase db) {
// String QUERY = "CREATE TABLE word (_id INTEGER PRIMARY KEY autoincrement, word_e TEXT , word_k TEXT)";
// db.execSQL(QUERY);
Log.e("ehsk", "eee");
// String QUERY1 = "INSERT INTO word (word_e, word_k ) VALUES(apple , 사과)";
// db.execSQL(QUERY1);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
String QUERY = "DROP TABLE IF EXISTS word";
db.execSQL(QUERY);
onCreate(db);
}
}
게시판 목록
팁게시판
질문은 상단의 QA에서 해주시기 바랍니다.
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 5827 | 10년 전 | 382 | ||
| 5826 | 10년 전 | 374 | ||
| 5825 | 10년 전 | 334 | ||
| 5824 | 10년 전 | 495 | ||
| 5823 | 10년 전 | 513 | ||
| 5822 | 10년 전 | 314 | ||
| 5821 | 10년 전 | 621 | ||
| 5820 | 10년 전 | 924 | ||
| 5819 | 10년 전 | 449 | ||
| 5818 | 10년 전 | 591 | ||
| 5817 |
|
10년 전 | 1402 | |
| 5816 | 10년 전 | 420 | ||
| 5815 | 10년 전 | 396 | ||
| 5814 | 10년 전 | 371 | ||
| 5813 |
|
10년 전 | 1173 | |
| 5812 | 10년 전 | 472 | ||
| 5811 | 10년 전 | 254 | ||
| 5810 | 10년 전 | 283 | ||
| 5809 | 10년 전 | 487 | ||
| 5808 | 10년 전 | 336 | ||
| 5807 | 10년 전 | 307 | ||
| 5806 | 10년 전 | 277 | ||
| 5805 | 10년 전 | 302 | ||
| 5804 | 10년 전 | 296 | ||
| 5803 | 10년 전 | 290 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기