在我的Android項目中,我有一個2M字節的原始數據文件。由於我的應用程序是一個長壽命的應用程序,我不希望它總是抓住2M內存。數據文件已被格式化,一旦我需要從數據文件中獲取一些數據,我只需要尋找某個位置並讀取幾個字節。如何隨機讀取Android中的原始資源文件
Resource類只能在原始文件上返回InputStream,但InputStream不能進行隨機讀取。
有沒有在Android上從原始數據文件中隨機讀取一些字節的方法?或者當我只需要幾個字節時,我必須將整個文件讀入內存。
在我的Android項目中,我有一個2M字節的原始數據文件。由於我的應用程序是一個長壽命的應用程序,我不希望它總是抓住2M內存。數據文件已被格式化,一旦我需要從數據文件中獲取一些數據,我只需要尋找某個位置並讀取幾個字節。如何隨機讀取Android中的原始資源文件
Resource類只能在原始文件上返回InputStream,但InputStream不能進行隨機讀取。
有沒有在Android上從原始數據文件中隨機讀取一些字節的方法?或者當我只需要幾個字節時,我必須將整個文件讀入內存。
InputStream
可以跳過與skip()
,也標誌着一個與mark()
偏移,字節的reset()
它可以回到標記的位置。所有可以用來做隨機IO的東西。 也可以將字節偏移量存儲在單獨的查找文件中。
當InputStream上的skip()時,我不知道底層實現是在執行seek()還是隻是讀取所有要跳過的字節。 – TieDad
Android是基於Java的建所以來看看這個教程: http://docs.oracle.com/javase/tutorial/essential/io/rafs.html
是否有可能將該大文件分割成幾個較小的文件? – gunar