Android读取大文件

Rag*_*har 2 java database csv android

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

Bal*_*usC 6

只需在读完线后立即插入即可.所以,只是不要将行存储在内存中的某些arraylist中.

例如

while ((line = reader.readLine()) != null) {
    insert(line);
}
Run Code Online (Sandbox Code Playgroud)

您可能希望在单个事务中执行此操作,以便在中途失败时可以回滚.在JDBC方面,您可能需要考虑PreparedStatement#addBatch()/ #executeBatch()批量执行插入.在这个答案中可以找到一个例子.

更新:作为一个完全不同但更有效的替代方案,您还可以将Java留在故事之外,并使用SQLite提供的CSV导入工具.