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