我有一個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. 閱讀大文本文件
- 5. Android閱讀文本文件
- 6. 閱讀大型csv文件
- 7. 閱讀大型CSV文件
- 8. 閱讀大轉儲文件
- 9. 大文件逐行閱讀
- 10. 的Android閱讀.twa文件
- 11. 在Android上閱讀文件
- 12. 閱讀.key文件android
- 13. Android文件編寫,閱讀
- 14. 閱讀巨大的文本文件Java
- 15. 閱讀大文本文件和內存
- 16. PHP閱讀大文本文件
- 17. 閱讀大文本文件的n行
- 18. 如何閱讀大文本文件 - java
- 19. Android - 閱讀巨大(30MB)文本文件並壓縮它們
- 20. Android閱讀文本文件正確
- 21. 選擇文本文件並閱讀Android
- 22. 閱讀Android原始文本文件
- 23. 閱讀和解析文本文件android
- 24. 閱讀一個文本文件android
- 25. 閱讀文件
- 26. 閱讀文件
- 27. 閱讀文件
- 28. 閱讀文件
- 29. 閱讀文件
- 30. 閱讀文件
感謝您的回答,我有另一個問題http://stackoverflow.com/questions/4369325/android-finding-files-on-the-sdcard – 2010-12-06 17:49:59