目前我正在研究一個Android應用程序,我需要將Csv文件中的數據插入到數據庫中。該Csv文件有超過2.5lakhs的數據。內存不足錯誤-Android
有沒有什麼辦法可以將Csv文件直接轉換成.db格式?
信息:Csv文件的大小是8 Mb。
我試了一下:
起初,我嘗試解析在我的應用CSV文件,插入1000的數據,併成功地做到了。但是,當檢索和存儲List中的數據時,我得到了OutOfMemoryError。
有什麼辦法可以整理出來嗎?
目前我正在研究一個Android應用程序,我需要將Csv文件中的數據插入到數據庫中。該Csv文件有超過2.5lakhs的數據。內存不足錯誤-Android
有沒有什麼辦法可以將Csv文件直接轉換成.db格式?
信息:Csv文件的大小是8 Mb。
我試了一下:
起初,我嘗試解析在我的應用CSV文件,插入1000的數據,併成功地做到了。但是,當檢索和存儲List中的數據時,我得到了OutOfMemoryError。
有什麼辦法可以整理出來嗎?
您不應該將整個文件一次加載到內存中。使用流式處理的方法,在這裏您逐行處理文件(例如LineNumberReader
)並單獨處理每一行,以便JVM必須僅將實際行保留在RAM中。
您也可以使用批處理,比如說1000行來處理一個座標。這樣可以提高速度(減少數據庫交易量),同時將內存佔用降至最低。
也嘗試最大化對象的重用率,避免不必要的創建。
什麼是'2.5lakhs'?你是如何試圖讀取文件的? – WarrenFaith
'2.5lahks'看起來像'bazzilions'確實>) – injecteer
250000字符串objects.Yes我試過了,但它需要太多時間,所以我創建1000個數據的另一個文件。實際上,問題發生時,我在列表中存儲1000個對象。 – Ram