Проблема с использованием моей собственной базы данных sqlite - PullRequest
0 голосов
/ 13 января 2011

Я использую этот код для копирования своей базы данных sqlite из каталога «Активы» в каталог «Android-телефон» / data / data / my_packname / database / »

public class DataBaseHelper extends SQLiteOpenHelper{   

    private SQLiteDatabase myDataBase; 

    private final Context myContext;

    public DataBaseHelper(Context context) {

     super(context, DATABASE_NAME, null, DATABASE_VERSION);
        this.myContext = context;
    } 

  ...

    private void copyDataBase() throws IOException{

     //Open your local db as the input stream

     AssetManager am = this.myContext.getAssets();

     InputStream myInput = am.open(DATABASE_NAME);


     // Path to the just created empty db
     String outFileName = DATABASE_PATH + DATABASE_NAME;

     //Open the empty db as the output stream
     OutputStream myOutput = new FileOutputStream(outFileName);

     //transfer bytes from the inputfile to the outputfile
     byte[] buffer = new byte[1024];
     int length;

     while ((length = myInput.read(buffer)) > 0){
      myOutput.write(buffer, 0, length);
     }

     //Close the streams
     myOutput.flush();
     myOutput.close();
     myInput.close();

    }

       ...
}

Но в очереди

 while ((length = myInput.read(buffer)) > 0){

У меня есть IOException !

Может кто-нибудь сказать мне, что я делаю не так?

1 Ответ

0 голосов
/ 18 мая 2011

Попробуйте код ответа по этой ссылке. изменения, которые я сделал в исходном коде, прокомментированы. Так что вам будет легче найти, что вы делаете неправильно.

База данных не копируется из активов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...