DB파일 1MB가 되지 않습니다.
DB파일을 assets에 저장후 data/data/패키지명/databases에 복사하여 사용 하는데요
복사까지는 되는데 그안에 Table이 분실되어 no such table이 뜨네요;;
DDMS에서 확인시 data/data/패키지명/databases 에 TimeTable.db 파일과 TimeTable.db-journal 파일이 두개 생성이 되며
DDMS에서 TimeTable.db 파일 추출해서 확인하면 기존에 있던 테이블은 다 분실이 되고
android-meatadata라는 테이블만 남아있네요;;
무엇이 문제일까요
참고로 DB파일을 곧바로 DDMS에서 추가해놓으면 데이터는 읽어옵니다.(정상작동)
제가 궁금한것은 assets에 있는 db를 DDMS(data/data/패키지명/databases)에 복사할 때
왜 기존에 있는 Table들이 다 없어지는지 궁금합니다.
public static final String PACKAGE_DIR = "/data/data/app.smtit_yd/";
public static final String DATABASE_NAME = "TimeTable.db";
public static final String COPYDATA_NAME = "TimeTable.db";
public static void initalize(Context ctx) {
// check
File folder = new File(PACKAGE_DIR + "databases");
if (folder.exists()){
} else {
folder.mkdir();
}
File outfile = new File(PACKAGE_DIR + "databases/" + COPYDATA_NAME);
if (outfile.length() <= 0) {
AssetManager assetManager = ctx.getResources().getAssets();
try {
InputStream is = assetManager.open(DATABASE_NAME, AssetManager.ACCESS_BUFFER);
long filesize = is.available();
byte [] tempdata = new byte[(int)filesize];
is.read();
is.close();
outfile.createNewFile();
FileOutputStream fo = new FileOutputStream(outfile);
fo.write(tempdata);
fo.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}