【发布时间】:2018-02-08 03:54:33
【问题描述】:
我在 sqlite android 中有一个用例,其中我在 android api 响应中有大量文本,它正确存储在 android sqlite 字段名称图像中
由于 sqlite 说 TEXT 字段可以存储非常长的文本,因此文本正确存储在 sqlite 中
拦截器:
当涉及到检索该文本文件时,我使用了下面的代码 sn-p:
questionModel.setImageBuffer(new StringBuffer(imgData == null ? "" :
(questionCursor.getString(questionCursor.getColumnIndex(Constants.COLUMN_QUESTION_IMAGE)))));
基本上这会将内容包装在字符串中,因此它不适合字符串并且内容被破坏
任何人都可以建议我如何将该字段正确提取到 StringBuffer 变量中
编辑:
看看下面的图片,文本存储已满,它的大小也显示在 sqlite 浏览器中,我提取了那个 db 并验证了它。
【问题讨论】:
-
你确定SQLITE中的文本是完整存储的,而不是剪切的?列的大小不是无限的,我觉得你在建表的时候一定要指定
-
@VladMatvienko 请查看编辑后的图像,我 100% 确定 db 中的文本是完整的
-
我在互联网上没有发现 SQLITE 或 Java 字符串的任何有效限制,或任何与它们相关的内容。所以我不认为有某种限制。尝试将复杂的代码分成不同的行和步骤,并检查它至少在哪一行出错。
-
@VladMatvienko 只是 chk 字符串数据类型限制,因此当我从光标获取文本时,它会将其包装在字符串数据类型中,因此字符串中断
-
@VladMatvienko 在使用
SQLiteCursor时限制为CursorWindow,如果我没记错的话,该类使用的大小为 2M