title: Android Out of Memory Error: How to solve this?
body: <p>I have an application, and I am trying to set up a fairly large SQLite database (one table with roughly 5000 rows) into it. I have built the DB classes and everything, and my app works when I tested on a smaller scale (400 rows), but now when I want to import my database, I get the out of memory error which I can't seem to find a way to get around.</p>
  
  <p>The database is initially on MySQL on my web server, and I couldn't convert it for some odd reason but I managed to generate a text file with the queries to add all 5000 rows, which is 11.5mb in size. I have this file in my assets folder, and I am trying this to put it into my DB:</p>
  
  <pre><code>public void onHandleIntent(Intent intent) {
  
          DBAdapter db = new DBAdapter(getApplicationContext());
          db.open();
  
          try {
              InputStream is = getAssets().open("verbs_sql.txt");
              db.executeSQL(convertStreamToString(is));
          } catch (IOException e) {}
  
          db.close();
  
          // Run main activity
          Intent i = new Intent(DatabaseReceiver.this, BaseActivity.class);
          i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
          DatabaseReceiver.this.startActivity(i);
      }
  
      public static String convertStreamToString(InputStream is) throws IOException {
          Writer writer = new StringWriter();
  
          char[] buffer = new char[2048];
          try {
              Reader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
              int n;
              while ((n = reader.read(buffer)) != -1) {
                  writer.write(buffer, 0, n);
              }
          } finally {
              is.close();
          }
          String text = writer.toString();
          return text;
      }
  }
  </code></pre>
  
  <p>The out of memory error occurs on the StringWriter(), so it looks likes it putting that big file on to the memory. How can I solve this? I have also tried looping through all 5000 rows but after maybe 30 seconds I got the out of memory again.</p>