[안드로이드] 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에서 해주시기 바랍니다.
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 5027 | 12년 전 | 3013 | ||
| 5026 | 12년 전 | 2686 | ||
| 5025 | 12년 전 | 3294 | ||
| 5024 | 12년 전 | 1015 | ||
| 5023 | 12년 전 | 840 | ||
| 5022 | 12년 전 | 2011 | ||
| 5021 | 12년 전 | 1506 | ||
| 5020 | 12년 전 | 1103 | ||
| 5019 | 12년 전 | 2095 | ||
| 5018 |
프로프리랜서
|
12년 전 | 1317 | |
| 5017 |
프로프리랜서
|
12년 전 | 789 | |
| 5016 |
프로프리랜서
|
12년 전 | 1322 | |
| 5015 |
프로프리랜서
|
12년 전 | 829 | |
| 5014 |
프로프리랜서
|
12년 전 | 1211 | |
| 5013 | 12년 전 | 3758 | ||
| 5012 | 12년 전 | 3934 | ||
| 5011 | 12년 전 | 1360 | ||
| 5010 | 12년 전 | 3841 | ||
| 5009 | 12년 전 | 2518 | ||
| 5008 | 12년 전 | 2227 | ||
| 5007 |
|
12년 전 | 1270 | |
| 5006 | 12년 전 | 1634 | ||
| 5005 | 12년 전 | 5153 | ||
| 5004 | 12년 전 | 1475 | ||
| 5003 |
|
12년 전 | 2089 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기