title: Copy SQLite database from assets folder
body: <p>I wanna copy SQLite database from assets folder. This my DatabaseAdapter.java class</p>
  
  <pre><code>package com.example.dictionary;
  
  import java.io.FileOutputStream;
  import java.io.IOException;
  import java.io.InputStream;
  import java.io.OutputStream;
  import android.content.Context;
  import android.database.sqlite.SQLiteDatabase;
  import android.database.sqlite.SQLiteOpenHelper;
  
  public class DatabaseAdapter extends SQLiteOpenHelper {
  
      static String DB_PATH = "/data/data/com.example.dictionary/databases/";
      static String DB_NAME = "dict.db";
      SQLiteDatabase db;
      private final Context mContext;
  
      public DatabaseAdapter(Context context) {
          super(context, DB_NAME, null, 1);
          this.mContext = context;
      }
  
      public void createDB(){
          boolean dbExist = checkDB();
          if (dbExist) {
  
          } else {
              this.getReadableDatabase();
  
              try {
                  copyDB();
              } catch (Exception e) {
                  throw new Error("Error copying DB");
  
              }
  
          }
      }
  
      private void copyDB() throws IOException {
          InputStream dbInput = mContext.getAssets().open(DB_NAME);
          String outFile = DB_PATH + DB_NAME;
          OutputStream dbOutput = new FileOutputStream(outFile);
  
          byte[] buffer = new byte[1024];
          int length;
          while ((length = dbInput.read(buffer))&gt;0) {
              dbOutput.write(buffer,0,length);
          }
  
          dbOutput.flush();
          dbOutput.close();
          dbInput.close();
  
      }
  
      private boolean checkDB() {
          SQLiteDatabase check = null;
          try {
              String dbPath = DB_PATH+DB_NAME;
              check = SQLiteDatabase.openDatabase(dbPath, null, SQLiteDatabase.OPEN_READONLY);
          } catch (Exception e) {
              // TODO: handle exception
          }
          if (check!=null) {
              check.close();
          }
  
          return check != null ? true : false;
      }
  
      public void openDB(){
          String dbPath = DB_PATH+DB_NAME;
          db = SQLiteDatabase.openDatabase(dbPath, null, SQLiteDatabase.OPEN_READONLY);
      }
  
      public synchronized void close(){
          if(db != null)
              db.close();
          super.close();
      }
      @Override
      public void onCreate(SQLiteDatabase db) {
  
      }
  
      @Override
      public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  
      }
  
  }
  </code></pre>
  
  <p>When i run app it isn't error. but when i check databases folder i saw file "dict.db" but only 12.00K and has only android_metadata table. Please help me. thanks.</p>