在我的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