android 数据库 字节数组,java - 如何使用活动的android序列化字节数组并将其存储到数据库中? - 堆栈内存溢出...

我有一个图像作为byte[] ,我需要将此图像保存在数据库中。 我为此使用Active Android库。 我知道db中用于此目的的数据类型应该是BLOB。 我知道byte[]不能直接存储,我知道它应该序列化。 但是当我尝试将其序列化时 - 问题就出现了。

我试图将byte[]转换为String然后将其插入数据库 - 它工作:我将它保存在数据库中。 但是然后,当我从db取回该字符串并将其转换回字节数组时,该数组不等于第一个字节,因此当我尝试将此数组解码为图像时收到

skia:--- SkImageDecoder :: Factory返回null。

我的问题是:如何序列化字节数组,将其保存到数据库中,将其反序列化为字节数组,这将等于第一个? 我的意思是确切的步骤。

我真的在寻找如何解决这个问题很长一段时间,我恳请你不要在这里分享Active Android文档的链接或其他类的TypeSerializer实现的例子 - 我看了很多次。 我需要的是如何逐步解决这个问题的方法。

编辑

我的TypeSerializer的当前代码,使我有机会使用Active Android在数据库中保存字节数组

public class ByteArraySerializer extends TypeSerializer {

@Override

public Class> getDeserializedType() {

return byte[].class;

}

@Override

public Class> getSerializedType() {

return String.class;

}

@Override

public Object serialize(Object o) {

if ( o != null ) {

return new String((byte[]) o);

}

return null;

}

@Override

public Object deserialize(Object o) {

if ( o != null ) {

String str = (String) o;

return str.getBytes();

}

return null;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值