안드로이드 개발 질문/답변
(글 수 45,052)
assets 폴더에 DB 파일을 위치시킨 후 어플을 실행하면 복사하여 사용하려고 하는데
복사까진 되는데, DB 에서 테이블이 없다며 읽어오질 못하더군요..
DDMS에서 확인해보니 DB 는 제대로 복사되었지만 무슨 이유에선지 처음 복사하여 실행하면
읽어오질 못하고 2번째 실행부터는 제대로 데이터를 읽어 오더군요..
어떤 문제 때문인지 고수님의 답변 부탁드립니다.
아래는 디비 카피 소스입니다.
package exam.TarotMania;
import java.io.*;
import android.app.Activity;
import android.content.Context;
import android.content.res.AssetManager;
import android.os.Environment;
public class CopyDB extends Activity{
CardValue value = new CardValue();
public void copy(Context context){
String path = "/data/data/exam.TarotMania/";
File folder = new File(path + "databases");
folder.mkdirs();
File outfile = new File(path + "databases/" + value.get_DB_NAME());
if(outfile.isFile()){
outfile.delete();
}
if (outfile.length() <= 0) {
AssetManager assetManager = context.getResources().getAssets();
try {
InputStream is = assetManager.open(value.get_DB_NAME(), assetManager.ACCESS_BUFFER);
long filesize = is.available();
byte [] buffer = new byte[(int)filesize];
is.read(buffer);
outfile.createNewFile();
FileOutputStream fo = new FileOutputStream(outfile);
fo.write(buffer);
is.close();
fo.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}




실행했을때 위의 메소드가 실행 된 후에
db파일의 용량이 0이 아니고 제대로 뜨나요?