java - 从 BLOB 文件恢复数据 S-Health

标签 java android sqlite blob

我正在尝试从使用 Samsung S-health SDK 获取的 blob 文件中获取数据。 我实际上做的是:

Cursor c = null;
int i = 0;
c = result.getResultCursor();

if (c != null) {
    while ( c.moveToNext() ) {
        byte[] live_data = c.getBlob( c.getColumnIndex( HealthConstants.Exercise.LIVE_DATA ) );
        if ( live_data != null ) {

            // Do something with data.


        } else {
            Log.d(APP_TAG, "there is no live data.");
        }
    }
} else {
    Log.d(APP_TAG, "There is no result.");
}

“live_data”是一个压缩文件,其中包含包含所有数据的 json。 我尝试用 ZipInputStream 解压它,但没有成功。 我该怎么办?

最佳答案

经过多次尝试,终于找到了解决办法。 问题是 blob 文件是 gzip 文件。 下面是解压缩字节数组的简单代码(在我的例子中是 live_data ):

ByteArrayInputStream inputStream = new ByteArrayInputStream(live_data);
GZIPInputStream gzipInputStream = new GZIPInputStream(inputStream);
BufferedReader bf = new BufferedReader(new 
InputStreamReader(gzipInputStream, "UTF-8"));
String outStr = "";
String line;
while ((line=bf.readLine())!=null) {
     outStr += line;
}

其中outStr是我想要检索的文件的内容,live_data是blob字节数组。 我希望这对其他人也有帮助。

关于java - 从 BLOB 文件恢复数据 S-Health,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44231496/

相关文章:

java - 使用for循环android将按钮变量声明为数组

android - 如何以编程方式将 HTML5 文件添加到 Android?

android - 等待 Kotlin 协程在 onCreateView() 中完成

iphone - 从保存在 sqlite 数据库表中的日期中检索月份部分以显示月份数据

php - 如何在本地数据库中保存距离矩阵?

java - 使用 Java 8 Streams,如何在 HashMap 中找到给定元素的最大值

java - 在配置时更改 spring bean 属性

java - com.android.build.transform.api.TransformException

android - 为低分辨率屏幕调整图像大小

c++ - Sqlite 作为 fopen() 的替代品?