안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요
안드로이드 초보입니다.
제가 따로 db파일을 생성해서 assets폴더안에 chunk.sqlite란 디비파일을 넣어두었구요
ativity가 실행될때
File outfile = new File("/data/data/app/databases/chunk.sqlite");
outfile.mkdir();
if(outfile.length() > 0 ) return;
AssetManager assetManager = getResources().getAssets();
try{
InputStream is = assetManager.open("database/chuck.sqlite", assetManager.ACCESS_BUFFER);
AssetFileDescriptor af = assetManager.openFd("database/chuck.sqlite");
long filesize = is.available();
byte [] tempdata = new byte[(int)filesize];
is.read(tempdata);
is.close();
outfile.createNewFile();
FileOutputStream fo = new FileOutputStream(outfile);
fo.write(tempdata);
fo.flush();
fo.close();
}catch(IOException e){
e.printStackTrace();
}
이렇게 실행했는데 data/data/app/databases폴더는 만들어졌는데 db파일 복사가 이루어지지 않습니다.
돌아다니는 예제를 보고 따라해 봤는데 잘 안되더라구요
혹시 방법이 틀린건가요??? 좀 도와주세요 ㅠ
안드로이드 초보입니다.
제가 따로 db파일을 생성해서 assets폴더안에 chunk.sqlite란 디비파일을 넣어두었구요
ativity가 실행될때
File outfile = new File("/data/data/app/databases/chunk.sqlite");
outfile.mkdir();
if(outfile.length() > 0 ) return;
AssetManager assetManager = getResources().getAssets();
try{
InputStream is = assetManager.open("database/chuck.sqlite", assetManager.ACCESS_BUFFER);
AssetFileDescriptor af = assetManager.openFd("database/chuck.sqlite");
long filesize = is.available();
byte [] tempdata = new byte[(int)filesize];
is.read(tempdata);
is.close();
outfile.createNewFile();
FileOutputStream fo = new FileOutputStream(outfile);
fo.write(tempdata);
fo.flush();
fo.close();
}catch(IOException e){
e.printStackTrace();
}
이렇게 실행했는데 data/data/app/databases폴더는 만들어졌는데 db파일 복사가 이루어지지 않습니다.
돌아다니는 예제를 보고 따라해 봤는데 잘 안되더라구요
혹시 방법이 틀린건가요??? 좀 도와주세요 ㅠ
안드로이드 내에서 편하게 디비를 만들고 테이블을 생성할 수 있는데 굳이 외부에서 만든 이유가..;;
외부 파일을 안드로이드 내부 폴더에 심으려면 DDMS 를 이용해서 하시면 됩니다.