我正在写一个Android应用程序。我正在解析txt文件中的行,并将每行的数据插入到SQLite数据库中。但插入过程恰好在1000个条目处停止。有3000多个条目,但插入过程在1000处停止。出了什么问题?
编辑:这是代码:
try{
InputStream is = ctx.getAssets().open("feedtitlesandaddresses.txt");
InputStreamReader iz=new InputStreamReader(is);
BufferedReader br = new BufferedReader(iz);
ContentValues values = new ContentValues();
while((line=br.readLine())!=null) {
StringTokenizer stringTokenizer = new StringTokenizer(line, "<");
String firstNumber="";
String strfinal="";
**//code which gives values to strfinal and firstNumber excluded
values.put(KEY_NAME, firstNumber); // Contact Name
values.put(KEY_PH_NO,strfinal); // Contact Phone
// Inserting Row
db.insert(TABLE_CONTACTS, null, values);}
}catch(Exception e){Log.d("yeah error is"+e,"twitch12");}
答案 0 :(得分:1)
出了什么问题?
我猜这很奇怪。问题可能与两者有关(文件或数据库问题)。
您是否考虑过TRANSACTION
?它可以解决您的问题。我最近使用db和normal插入了100 000行(但肯定在事务中),因为没有事务,你的操作将花费很多时间。
因此,我的建议将您的代码包装到事务中,读取和写入将花费更少的时间,它应该解决问题。
<强>伪代码:强>
try {
db.begiTransaction();
...
// your work with file and inserting
db.setTransactionSuccessful();
...
}
finally {
if (db.inTransaction()) {
db.endTransaction();
}
}
查看1000. line in file并告诉我。
答案 1 :(得分:0)
步骤:
Number of data rows per page
根据需要选择尺寸。我和你的问题一样,我将数字1000改为2000,它就像一个魅力。希望它对你有用。