Criando banco de dados de aplicativos Android com grande quantidade de dados

O banco de dados do meu aplicativo precisa ser preenchido com muitos dados, poronCreate(), não são apenas algumas instruções create table sql, existem muitas inserções. A solução que escolhi é armazenar todas essas instruções em um arquivo sql localizado em res / raw e que é carregado comResources.openRawResource(id).

Ele funciona bem, mas eu enfrento a questão de codificação, eu tenho alguns caharacters acentuados no arquivo sql que aparece mal no meu aplicativo. Este meu código para fazer isso:

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);
        }

A solução que encontrei para evitar isso é carregar as instruções sql de um enormestatic final String em vez de um arquivo, e todos os caracteres acentuados aparecem bem.

Mas não há uma maneira mais elegante de carregar instruções de sql do que um grandestatic final String atributo com todas as instruções sql?