3

我正在编写一个安卓应用程序。我正在解析 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");}
4

2 回答 2

1

出了什么问题?

我想这很奇怪。问题可能与两者有关(文件或数据库问题)。

你想过TRANSACTION吗?它可能会解决您的问题。我最近使用 db 并正常插入了 100 000 行(但肯定在事务中),因为如果没有事务,您的操作将花费大量时间。

因此,正如我的建议将您的代码包装到事务中一样,读写将花费更少的时间,并且应该可以解决问题。

伪代码:

try {
   db.begiTransaction();
   ...
   // your work with file and inserting
   db.setTransactionSuccessful();
   ...
}
finally {
   if (db.inTransaction()) {
      db.endTransaction();
   }
}

更新:

查看文件中的 1000. 行并告诉我。

于 2013-03-27T19:21:21.283 回答
1

脚步:

  • 转到 SQLiteStudio
  • 选择工具 > 打开配置对话框 > 数据浏览
  • 在您将拥有Number of data rows per page的数据浏览中,现在根据需要选择大小。

我和你有同样的问题,我把数字 1000 改成了 2000,效果很好。希望它对你有用。

于 2017-06-21T03:47:34.560 回答