gpt4 book ai didi

android - 从 CSV 文件大量插入 SQLite 数据库

转载 作者:行者123 更新时间:2023-11-29 21:39:02 26 4
gpt4 key购买 nike

当用户第一次下载我的应用时,该应用会下载一个包含大约 100,000 行数据的 CSV 文件。

然后,我想用它填充我的 SQLite 数据库。

这是我的代码:

InputStream inputStream = activity.openFileInput(file);
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String line = null;

dbHelper.beginTransaction();

while((line = bufferedReader.readLine()) != null) {
String[] values = line.replaceAll("'", "''").split(",");
dbHelper.insert(values);
}

dbHelper.setTransactionSuccessful();
dbHelper.endTransaction();
dbHelper.close();

在我的 DBHelper 类中,这是插入方法:

public void insert(String[] data) {
ContentValues values = new ContentValues();
values.put(DBHelper.SHAPE_ID, data[0]);
values.put(DBHelper.SHAPE_PT_LAT, data[1]);
values.put(DBHelper.SHAPE_PT_LON, data[2]);
values.put(DBHelper.SHAPE_PT_SEQUENCE, data[3]);
myDB.insert(DBHelper.TABLE_SHAPES, null, values);
}

我试过这段代码,它起作用了,但花了 7 分钟才完成...难道我做错了什么 ?有没有更好的方法(读取速度更快)来填充 SQLite 数据库?

最佳答案

您应该下载 SQLite 数据库文件本身。

如果你想保留数据库中的其他数据,你可以

  • 将其他数据复制到下载的数据库中(因为数据不多,这应该很快);或
  • 将下载的数据库和其他数据库分开(如果您需要在它们之间进行连接,则将 ATTACH 分开)。

关于android - 从 CSV 文件大量插入 SQLite 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17606726/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com