我有一个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