在我的Android应用程序中,我有一个Bitmap对象和一个int []。我的应用程序中的一种算法将位图像素值复制到int [],然后修改后者中的值。快速写入int []到磁盘?
我想尽快将原始int []的内容保存到磁盘。什么是快速和高效的内存方式? (即调用每个int []项上的.writeInt函数在Android中执行此操作会非常缓慢,因为在大多数设备上没有JIT)
我发现如果我创建了一个字节[]与int []大小相同并将int []复制到byte [],然后我可以使用多个文件io方法之一在一次API调用中将byte []写入磁盘。然而,这使用了很多额外的内存,因为我现在有两个版本的int []。
失败了,也许有一些方法会直接将位图的int值写入文件中?如果是这样,我可以将int []复制回Bitmap对象并使用它。顺便说一句,我不想使用“.png”压缩,只是想保存原始值,因为后者更快。
您也可以尝试ObjectOutputStream.writeObject(myIntArray)。也许它在本质上做了一些巧妙的事情。 – Thilo 2010-11-02 02:20:51
谢谢,我会放弃这一点。我很惊讶于缺少writeIntArray函数。顺便说一下,有没有一种简单的方法来查看如何为数组实现writeObject?我不确定在哪里看。这可能是一个好方法,但考虑到未来,这使得很难在不使用Java的情况下阅读文件。 – RichardNewton 2010-11-02 02:28:55
是的,如果它需要跨平台(另一方面,它几乎肯定只是一个头,然后是整数序列),我不会使用writeObject。让我知道你是否发现了原始数组的writeObject实现(在JDK或Android中)。 – Thilo 2010-11-02 02:31:29