2017-11-28 16 views
-1

자산과 dbflow에서 sqlite 파일을 올바르게 읽었지만 런타임에 때때로 인터넷에서 새롭게 업데이트 된 sqlite 파일을 다운로드하여 sdcard 의 특정 폴더에 저장해야합니다. sdcard에서이 sqlite 파일로 dbflow 데이터베이스를 업데이트하는 방법 모든 테이블 의 데이터를 제거하고 sdcard에있는 파일의 새 데이터를 추가하십시오.런타임시 인터넷에서 다운로드 한 sqlite 파일로 데이터베이스를 업데이트하는 방법은 무엇입니까?

+0

단순히 같은 위치를 유지함으로써, 예전의 장소에서 새로운 데이터베이스를 복사 TOO MANIFEST RUNTIME ON AND IN 쓰기 권한 : 그것은

NB 작동 바랍니다. 그리고 앱을 다시 시작하십시오. 이제 앱에서 새 데이터베이스를 사용하게됩니다. –

답변

0

BElow 코드를 사용해보십시오. 이 파일은 제거 후 데이터 복원을 위해 응용 프로그램에서 가져온 백업입니다. 코드를 사용해보십시오. READ를 제공하고

private void importDB() { 
    try { 
     File sd = Environment.getExternalStorageDirectory(); 
     File data = Environment.getDataDirectory(); 
     if (sd.canWrite()) { 
      String currentDBPath = DOWNLOADEDDATAPATH; //SOURCE 
      String backupDBPath = "data/" + getContext().getPackageName() + "/databases/FILENAME"; //Destination 


      File backupDB = new File(sd, currentDBPath); //SOURCE 
      File currentDB = new File(data, backupDBPath); //Destination 

      FileChannel src = new FileInputStream(backupDB).getChannel(); //SOURCE 
      FileChannel dst = new FileOutputStream(currentDB).getChannel(); //Destination 
      dst.transferFrom(src, 0, src.size()); 
      src.close(); 
      dst.close(); 


     } 
    } catch (Exception e) { 
     Log.d("test", e.toString()); 
    } 
}