title: Downloading & copying database from server to assets folder in android
body: <p>I want to download the SQLITE database from PHP(server) and copy it into assets folder in Android(client). I did not get the required output. Can anybody tell me where I did the mistake or miss something? Thanks for any help.</p>
  
  <p>Code:</p>
  
  <pre><code>    boolean downloadDatabase(Context context) {
      try {
             Log.d("test", "downloading database");
              URL url = new URL("http://10.0.2.2/SvcEnggPlanner/" + "Services.sqlite");
              URLConnection ucon = url.openConnection();
              InputStream is = ucon.getInputStream();
              BufferedInputStream bis = new BufferedInputStream(is);
              ByteArrayBuffer baf = new ByteArrayBuffer(50);
              int current = 0;
              while ((current = bis.read()) != -1) {
                      baf.append((byte) current);
              }
  
             FileOutputStream fos = null;
  
              fos = context.openFileOutput("Services.sqlite", Context.MODE_PRIVATE); 
              if(fos!=null){
              fos.write(baf.toByteArray());
              fos.close();
             Log.d("test", "downloaded");
              }
      } catch (IOException e) {
              Log.e("test", "downloadDatabase Error: " , e);
              return false;
      }  catch (NullPointerException e) {
              Log.e("test", "downloadDatabase Error: " , e);
              return false;
      } catch (Exception e){
              Log.e("test", "downloadDatabase Error: " , e);
              return false;
      }
      return true;
  }
  
  public void copyServerDatabase() {
      SQLiteDatabase db = getReadableDatabase();
      db.close();
  
          OutputStream os = null;
          InputStream is = null;
         try {
                  Log.d("test", "Copying DB from server version into app");
                  is = context.openFileInput("Services.sqlite");
                  Log.d("test", ""+is);
                  os = new FileOutputStream("/data/data/com.sever/databases/");
                  Log.d("test", ""+os);
                  copyFile(os, is);
         } catch (Exception e) {
             Log.d("test", "Server Database was not found - did it download correctly?");                          
         } 
  finally {
                  try {
  
                          if(os != null){
                                  os.close();
                          }
                          if(is != null){
                                  is.close();
                          }
                  } catch (IOException e) {
                          Log.d("test", "failed to close databases");
                  }
         }
         Log.d("test", "Done Copying DB from server");
  
  }
  
      private void copyFile(OutputStream os, InputStream is) throws IOException {
      Log.d("test", "In CopyFile");
         byte[] buffer = new byte[1024];
         int length;
         while((length = is.read(buffer))&gt;0){
              os.write(buffer, 0, length);
         }
         os.flush();
   }
   }
  </code></pre>