sql >> Base de Datos >  >> RDS >> SQLite

¿Cómo almacenar y recuperar una matriz de bytes (datos de imagen) hacia y desde una base de datos SQLite?

La matriz de bytes se puede almacenar como tipo de datos BLOB. No hay nada especial en este procedimiento, excepto un cuidado especial para fragmentar, como:

InputStream is = context.getResources().open(R.drawable.MyImageFile);
try {
    byte[] buffer = new byte[CHUNK_SIZE];
    int size = CHUNK_SIZE;
    while(size == CHUNK_SIZE) {
        size = is.read(buffer);  //read chunks from file
        if (size == -1) break;

        ContentValues cv = new ContentValues();
        cv.put(CHUNK, buffer);       //CHUNK blob type field of your table

        long rawId = database.insert(TABLE, null, cv); //TABLE table name
    }
} catch (Exception e) {
    Log.e(TAG, "Error saving raw image to: "+rawId, e);
}