Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了java-使用SQLOpenHelper将BLOB存储在Android的SQLite中 大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

有没有一种方法可以使用sqlOpenHelper将BLOB存储到Androidsqlite中?

我的InputStream类型的BLOB.

最佳答案
sqlite不支持流式BLOB或CLOB数据.您有四个选择:

>将InputStream转换为字节[].仅当您有足够的内存时才有效(请参阅下文).
>使用FiLeoutputStream或支持流传输的Android API
>将数据分成小块,然后存储在sqlite中
>使用适用于Android并支持流式传输的数据库.我只知道H2 database.但是请注意,Android对H2的支持是非常新的.@L_616_12@种情况下,您需要使用JDBC API,并且可能要启用LOBs in the database,否则每个大型BLOB都存储在单独的文件中.

要将InputStream转换为字节数组,可以使用:

public static byte[] readBytesAndClose(InputStream in) throws IOException {
    try {
        int block = 4 * 1024;
        ByteArrayOutputStream out = new ByteArrayOutputStream(block);
        byte[] buff = new byte[block];
        while (true) {
            int len = in.read(buff,block);
            if (len < 0) {
                break;
            }
            out.write(buff,len);
        }
        return out.toByteArray();
    } finally {
        in.close();
    }
}

大佬总结

以上是大佬教程为你收集整理的java-使用SQLOpenHelper将BLOB存储在Android的SQLite中 全部内容,希望文章能够帮你解决java-使用SQLOpenHelper将BLOB存储在Android的SQLite中 所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。