Creación de la base de datos de la aplicación de Android con gran cantidad de datos

La base de datos de mi solicitud debe llenarse con una gran cantidad de datos, por lo que duranteonCreate(), no son solo algunas instrucciones de crear tablas de sql, sino que hay muchas inserciones. La solución que elegí es almacenar todas estas instrucciones en un archivo sql ubicado en res / raw y que está cargado conResources.openRawResource(id).

Funciona bien, pero me enfrento a un problema de codificación, tengo algunos caracteres compartidos acentuados en el archivo sql que aparecen mal en mi aplicación. Este es mi código para hacer esto:

public String getFileContent(Resources resources, int rawId) throws
IOException
  {
    InputStream is = resources.openRawResource(rawId);
    int size = is.available();
    // Read the entire asset into a local byte buffer.
    byte[] buffer = new byte[size];
    is.read(buffer);
    is.close();
    // Convert the buffer into a string.
    return new String(buffer);
  }

public void onCreate(SQLiteDatabase db) {
   try {
        // get file content
        String sqlCode = getFileContent(mCtx.getResources(), R.raw.db_create);
        // execute code
        for (String sqlStatements : sqlCode.split(";"))
        {
            db.execSQL(sqlStatements);
        }

        Log.v("Creating database done.");
        } catch (IOException e) {
            // Should never happen!
            Log.e("Error reading sql file " + e.getMessage(), e);
            throw new RuntimeException(e);
        } catch (SQLException e) {
            Log.e("Error executing sql code " + e.getMessage(), e);
            throw new RuntimeException(e);
        }

La solución que encontré para evitar esto es cargar las instrucciones de SQL de una enormestatic final String En lugar de un archivo, todos los caracteres acentuados aparecen bien.

Pero, ¿no hay una forma más elegante de cargar instrucciones de SQL que una granstatic final String atribuir con todas las instrucciones sql?

Respuestas a la pregunta(4)

Su respuesta a la pregunta