【发布时间】:2014-08-31 05:14:44
【问题描述】:
CSV 原始文件大小为 11.6 MB。
这是我使用 Apache CSVReader 和 SQLCipher 编写的代码。
这里是从raw中读取字符串的函数。
private String readRawText(int rawId) {
InputStream inputStream = cxt.getResources().openRawResource(rawId);
InputStreamReader inputreader = new InputStreamReader(inputStream);
BufferedReader bufferedreader = new BufferedReader(inputreader);
String line;
StringBuilder stringBuilder = new StringBuilder();
try {
while ((line = bufferedreader.readLine()) != null) {
stringBuilder.append(line);
stringBuilder.append('\n');
}
} catch (IOException e) {
e.printStackTrace();
return null;
}
return stringBuilder.toString();
}
这是从readRawText(int rawId)读取的字符串中插入数据的函数:
public void insertDefaultBible() {
StringReader str = new StringReader(readRawText(R.raw.kjv));
SQLiteDatabase.loadLibs(cxt);
File databaseFile = new File(Values.database.file);
SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabase(
databaseFile, "test123", null);
Iterable<CSVRecord> records = null;
try {
records = CSVFormat.EXCEL.parse(str);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for (CSVRecord record : records) {
ContentValues content = new ContentValues();
content.put("scripture_code", record.get(1));
content.put("chapter_number", record.get(2));
content.put("verse_number", record.get(3));
content.put("content", record.get(4));
database.insert("kjv", null, content);
}
}
这需要几分钟。我怎样才能使它更快地插入?是什么让它变慢?为什么要让它变慢?
【问题讨论】:
-
你的 csv 是逗号分隔的文件???