我有一個CSV文件,資產文件夾中有超過10000行數據。我想在創建數據庫時將這些數據插入到SQLite數據庫中。我不能包含數據庫,因爲它是一個非常通用的應用程序,而該模型需要一個CSV文件。我不想讀取所有10000行數據並在一段時間內將其從內存中插入。我如何有效和高效地完成任務?Android閱讀大文件
2
A
回答
6
只要插入立即一旦你讀完了這一行。所以,不要將行存儲在某個數組列表中。
E.g.
while ((line = reader.readLine()) != null) {
insert(line);
}
您可能希望在單個事務中執行此操作,以便在半途中斷時可以回滾。在JDBC方面,您可能想要考慮PreparedStatement#addBatch()
/#executeBatch()
批量執行插入。一個例子可以在this answer中找到。
更新:作爲一個完全不同但更高效的替代方案,您還可以將Java留在故事之外並使用CSV import facility provided by SQLite。
3
最簡單,最有效的在這種情況下,是一次從文件中讀取20-30-50(或者100?)線,並插入到數據庫中,但是你也需要運行一些測試來看到的是,你可以在1個隨時隨地瀏覽線的最佳數量,然後實現它:-)
1
IMPORT名錶名
(從http://old.nabble.com/How-can-I-load-big-file-into-a-sqlite-database--td19202500.html - 像LOAD DATA在mysql中)。
其他: 禁用自動提交,自動沖洗;讀20行,提交,刷新。
相關問題
- 1. 閱讀大文件
- 2. 閱讀文件Android
- 3. Android文件閱讀
- 4. Android閱讀文本文件
- 5. 閱讀大型CSV文件
- 6. 閱讀大型csv文件
- 7. 大文件逐行閱讀
- 8. 閱讀.key文件android
- 9. 的Android閱讀.twa文件
- 10. Android文件編寫,閱讀
- 11. 閱讀大文本文件和內存
- 12. 閱讀大文本文件的n行
- 13. PHP閱讀大文本文件
- 14. 閱讀巨大的文本文件Java
- 15. 閱讀一個文本文件android
- 16. 閱讀和解析文本文件android
- 17. 閱讀文件
- 18. 閱讀文件
- 19. 閱讀大文件並強制下載
- 20. 如何逐行閱讀大文件?
- 21. 閱讀非常大的.xml.bz2文件
- 22. 閱讀和解析大文件
- 23. 閱讀大文件(Java堆空間)
- 24. 在Java中閱讀大文件
- 25. 閱讀一個非常大的文件
- 26. 閱讀大文件錯誤「outofmemoryerror」(java)
- 27. 在Python中閱讀巨大文件
- 28. 閱讀文件時出現大括號
- 29. 如何閱讀大的CSV文件?
- 30. 閱讀/寫作大文件VB.NET
感謝您的回答,我有另一個問題http://stackoverflow.com/questions/4369325/android-finding-files-on-the-sdcard – 2010-12-06 17:49:59