달력

4

« 2024/4 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
728x90
반응형

 

안드로이드 - DB file을 assets디렉토리에서 폰으로 복사 이동하는 예제

원본출처: http://blog.daum.net/dayhyub/53

 

 안드로이드 개발시 종목기본정보를

DB에 저장하다보니

애뮬레이터에서는 잘 돌던 프로그램이

폰으로 옮겼을 때 DB가 없어서

에러가 났다.

그래서 이를 해결하는 방법을 찾다보니

안드로이드에선 주로 assets디렉토리에 파일을 두고

프로그램 실행시 DB로 카피하는 식의 방식을 쓰고 있어

인터넷에서 예제를 구해 나름

작업해보았다.

 

 [함수예제]
  private void copyDB() {
  // TODO Auto-generated method stub
  String dir="/data/data/com.example.neojprice/databases/";
  String fname = "JMaster.db";
  File folder =new File(dir);
  if(folder.exists()){
   
  }else{
   folder.mkdirs();
   System.out.println("폴더 생성!!!!");
  }
  AssetManager aman = getResources().getAssets();
  File ofile = new File(dir+fname);
  ofile.delete(); 
  InputStream in = null;
  FileOutputStream out = null;
  long filesize=0;
  
  try{
   in = aman.open(fname,AssetManager.ACCESS_BUFFER);
   filesize = in.available();
   
   if(ofile.length() <=0){
    byte[] tmpbyte = new byte[(int)filesize];
    in.read(tmpbyte);
    in.close();
    ofile.createNewFile();
    out = new FileOutputStream(ofile);
    out.write(tmpbyte);
    out.close();
   }else{
    
    System.out.println("DB있음!!!");
   }
  }catch(IOException e){
   System.out.println("DB생성 오류 ["+e+"]");
  }
  
 }

728x90
반응형
:
Posted by mapagilove