2011-10-03 88 views
1

我想在我的SQLite數據庫中存儲一個大的Byte[]以小塊形式在sqlite數據庫中存儲一個Byte []?

Android對每個應用程序可以使用的RAM有多少限制,所以我認爲避開這個限制的最好方法是將文件寫入較小的塊。

是否可以使用流訪問我的文件,並附加到我的數據庫Byte[]小塊? (無需將Byte[]加載到內存中追加)

回答

1

將數據存儲在應用程序/ sdcard中的文件中,並在SQLite中保留引用 - 不能將其附加到SQLite中的BLOB(至少不用預先分配zeroblob的大小)和使用NDK) - 除此之外 - 你會如何閱讀它? SDK中唯一可用的API將嘗試將整個BLOB讀回爲byte[]

通常,您希望正確實施ContentProvider#openFile(..)

+0

感謝您的回覆。所以這聽起來像你說沒有辦法使用流讀/寫數據庫。我將研究ContentProvider類,並查看是否有任何想法點擊。謝謝 – Matt

+0

至少沒有什麼好方法,特別是對於大型的二進制博客 - 如果您實現ContentProvider#openFile(..)方法,則可以通過標準ContentResolver API進行讀/寫/附加操作。不幸的是,它最好(隱藏功能最少的黑客)將openFile(..)交換的數據存儲在應用程序文件夾或SDcard中的文件中。 – Jens

+0

哦,好的。那麼也許SQLite數據庫不是理想的存儲解決方案。有更好的格式,如果我想存儲5個大文件,但希望它們駐留在單個文件中?我看到一篇iOS文章談論文件「捆綁」,在Android中有沒有類似的東西,我可以流/附加到? – Matt

相關問題