UTFDataFormatException - 编码字符串太长

UTFDataFormatException - encoded string too long

在我的移动应用程序中,我有一个实现 PropertyBusinessObject 的对象,其中包含许多其他也实现此接口的对象。此对象结构由我从服务器返回的 JSON 数据填充。当我尝试使用 writeObject() 将此对象写入存储时,出现上述错误。堆栈跟踪显示它起源于 com.codename1.io.Util.writeObject() 方法,它正在写入 UTF-8(限制为 64k)。开发者指南没有提到存储的任何潜在问题,并推荐它而不是 FileSystemStorage。我的问题是,这个有 workaround/update 吗?我是否必须恢复将对象结构写入文件系统?谢谢。

如果你有一个非常长的字符串,例如为了表示文件的内容,我建议重新考虑一下。字符串在代号一中效率低下,因为我们需要将它们的表示复制到 iOS 本机层。如果您需要的是二进制表示,那么将它们写入 UTF 也是非常浪费的。我建议使用字节数组。

序列化到存储是一种简单的方法。它适用于小物体。如果您有较大的物品,您可能希望将它们单独存放。您还可以序列化 to/from JSON 以便您的存储数据可读。