我有一个.csv文件,我想把这个文件导入到我的Android数据库中.

例如.csv文件:

| id | name  | dt1 | dt2 | dt3 | 
| 1  | Paul  | 21  | 98  | 91  |
| 2  | John  | 22  | 44  | 11  |
| 3  | George| 21  | 31  | 22  |
| 4  | Ringo | 20  | 10  | 15  | 

对于这样的事情:

Cursor cursor = getWritableDatabase().
rawQuery("Insert into table1(_id, name, dt1, dt2, dt3)
values ( 1, Paul, 21, 98, 91)
values ( 2, John, 22, 44, 11)
values ( 3, George, 21,31,22)
values ( 4, Ringo, 20, 10,15);");

拜托,我该怎么做?

推荐答案

试试下面的代码,

FileReader file = new FileReader(fileName);
BufferedReader buffer = new BufferedReader(file);
String line = "";
String tableName ="TABLE_NAME";
String columns = "_id, name, dt1, dt2, dt3";
String str1 = "INSERT INTO " + tableName + " (" + columns + ") values(";
String str2 = ");";

db.beginTransaction();
while ((line = buffer.readLine()) != null) {
    StringBuilder sb = new StringBuilder(str1);
    String[] str = line.split(",");
    sb.append("'" + str[0] + "',");
    sb.append(str[1] + "',");
    sb.append(str[2] + "',");
    sb.append(str[3] + "'");
    sb.append(str[4] + "'");
    sb.append(str2);
    db.execSQL(sb.toString());
}
db.setTransactionSuccessful();
db.endTransaction();

Database相关问答推荐

如何使授权服务器与外部数据库保持同步?

如何将初始数据放入数据库

如何使用 Gramex FormHandler 动态(在运行时)创建或更改数据库模式

NOSQL 非规范化数据模型

Cassandra 还是 MySQL/PostgreSQL?

Followers/following 关注者表数据库 struct

苹果 ios 购买收据数据的可能最大长度是多少?

如何避免使用 LINQ-To-SQL 的内存泄漏?

Laravel 5 从 URL 获取 ID

MS SQL 中查询的优先级

MySQL 中的多个 OR 子句

如何在 DB2 的单个更新语句中更新多个列

ODBC 与 JDBC 与 ADO.NET

friendship数据库模式

为 PHPMyadmin DB 自动生成数据库图?

如何使用 Realm 进行排序?

在将字符串插入数据库期间单引号转义

Android SQLite 数据库,为什么要删除表并在升级时重新创建

将查询限制为一条记录会提高性能吗

SQL 截断数据库?如何截断所有表格