java - Android读取大文件

标签 java android database csv

我在 assets 文件夹中有一个 CSV 文件,其中包含超过 10000 行数据。我想在创建数据库时将此数据插入到 SQLite 数据库中。我不能包含数据库,因为它是一个非常通用的应用程序,而模型需要一个 CSV 文件。我不想读取所有 10000 行数据并从内存中一次性插入它。我如何有效且高效地完成任务?

最佳答案

阅读完该行后,立即插入即可。所以,不要将这些行存储在内存中的某个数组列表中。

例如

while ((line = reader.readLine()) != null) {
    insert(line);
}

您可能希望在单个事务中执行此操作,以便在中途失败时可以回滚。在 JDBC 端,您可能需要考虑使用 PreparedStatement#addBatch()/#executeBatch() 来批量执行插入操作。可以在 this answer 中找到示例.

更新:作为一个完全不同但更有效的替代方案,您也可以将 Java 排除在外并使用 CSV import facility provided by SQLite .

关于java - Android读取大文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4369218/

相关文章:

php - 多个值插入mysql数据库表

Android Studio 2.1 :Failed to resolve: com. android.databinding :adapters:1. 1

database - ISBN -> bookdata 查找填充数据库

java - 我应该如何最好地与 Selenium Java WebDriver 中的 Flash 交互

java - 如何通过JSONArray获取API的数据

java - 边缘不允许我选择源或目标中的精确点 [mxgraph]

java - 为什么我的 SwingWorker 不工作?

android - 设备后退按钮如何导致上一个 Activity ?

java - 在完整内容处理之前设置 ProgressBar

php - 计算 mySQL 中的值