2013-07-02 5 views
0

Я хочу использовать существующий файл базы данных, используя ORMLite в android. У меня есть файл database.db уже сформированной базы данных. Я хочу использовать его в своем приложении.Как читать существующую базу данных на Android с помощью ORMLite

Мой класс расширяет OrmLiteSqliteOpenHelper.

У кого-нибудь есть идея? Пожалуйста, помогите

Я использую, чтобы скопировать файл базы данных в канал передачи данных с использованием
государственной статической силы copyDataBase (String путь, контекст с) бросает IOException {

//Open your local db as the input stream 
    InputStream myInput = c.getAssets().open("Mydb.db"); 

    // Path to the just created empty db 
    String outFileName = "/data/data/packageName/databases/databaseName"; 
    String outFileName2 = "/data/data/packageName/databases/"; 
    File file = new File(outFileName2); 
    if(!file.exists()) 
     file.mkdirs(); 
    //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(); 
} 

Но это не поможет мне.

+0

Что вы пытаетесь до сих пор, и что ошибка вы получили? – Qben

ответ

0

Это своего рода удар в темноте, так как я не знаю, какова ваша точная проблема, но не можете ли вы просто указать файл базы данных (и путь) в конструкторе OrmLiteSqliteOpenHelper?

OrmLiteSqliteOpenHelper(android.content.Context context, String databaseName, android.database.sqlite.SQLiteDatabase.CursorFactory factory, int databaseVersion)

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

Надеюсь, это поможет вам немного по пути.

0

Я решил проблему ниже реализации

try { 

      String destPath = "/data/data/" + context.getPackageName() 
        + "/databases"; 
      Log.v("LOG", destPath); 

      File f = new File(destPath); 
      if (!f.exists()) { 
       f.mkdirs(); 
       File outputFile = new File("/data/data/" 
         + context.getPackageName() + "/databases", 
         "Name ofyour Database"); 
       outputFile.createNewFile(); 

       String DatabaseFile = "database file name from asset folder"; 

       InputStream in = context.getAssets().open(DatabaseFile); 
       OutputStream out = new FileOutputStream(outputFile); 

       byte[] buffer = new byte[1024]; 
       int length; 
       while ((length = in.read(buffer)) > 0) { 
        out.write(buffer, 0, length); 
       } 
       in.close(); 
       out.close(); 
      } 

     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      Log.v("TAG", "ioexeption"); 
      e.printStackTrace(); 
     } 
Смежные вопросы