2013-07-14 33 views
1

我已經在Android的java.lang.Bytes[]數組,我想將它保存到SQLLite錶轉換爲BLOB列。如何在Android中將Raw java.lang.Bytes []保存到SQLLite BLOB中?

我創建的表和列等我不確定如何將數組保存爲BLOB原樣。

public void AddUpdateKeys(int deviceID, String key, Boolean learned, Byte[] rawKey) 
    { 
    ... // other code 
    ContentValues cv = new ContentValues(); 
    cv.put(colKeyDevID, deviceID); 
    cv.put(colKeyLearned, key); 
    cv.put(colKeyLearned, learned ? 1 : 0);   
    cv.put(colKeyData, rawKey); <-- Here is the issue, how to convert Type Byte[] to byte[] 

如何轉換的原始數據是在java.lang.Byte[]byte[],我已經試過

private byte[] getBytes(Byte[] learnedKey) { 

    byte[] result = new byte[learnedKey.length]; 
    for(int i=0; i<learnedKey.length; i++){ 
     result[i] = learnedKey[i].byteValue(); 
    } 
    return result; 
} 

但僅僅是「崩潰」,我還檢查了rawKey包含數據?我是Android的新手SQLLite Java。我想將Byte[]的原始數據保存到Blob中,稍後再讀取並再次使用它。

+3

崩潰=>交的堆棧跟蹤。 – njzk2

+0

另外:爲什麼你首先要有'Byte []'?幾乎沒有任何理由要這樣做*! –

+0

@ njzk2:http://pastebin.com/9NVPicJk登錄 –

回答

0

實際上是一個SQL BLOB類型存儲大陣列的二進制數據(字節)作爲在數據庫中的列的值的。 所以使用列值類型應指定爲blob超過table。而然後保存字節[]到that.you應必須遵循這些步驟那邊(EXM圖像。):

1變頻圖像位圖。

2-轉換位圖字節數組。

public static byte[] getBytesFromBitmap(Bitmap bitmap) { 
    if (bitmap!=null) { 
     ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
     bitmap.compress(Bitmap.CompressFormat.JPEG, 70, stream); 
     return stream.toByteArray(); 
    } 
    return null; 
} 

3-make列類型爲blob。 4-將該字節數組保存到該列。

相關問題