How to store and retrieve a byte array (image data) to and from a SQLite database?

后端 未结 1 2058
眼角桃花
眼角桃花 2020-11-30 13:09

How do I store and retrieve a byte array (image data) to and from a SQLite database in Android?

相关标签:
1条回答
  • 2020-11-30 13:32

    Byte array can be stored as BLOB data type. There's nothing special in this procedure except special care for chunking, like:

    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);
    }
    
    0 讨论(0)
提交回复
热议问题