Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SQLite数据库不接受超过1000行?_Java_Android_Sqlite - Fatal编程技术网

Java SQLite数据库不接受超过1000行?

Java SQLite数据库不接受超过1000行?,java,android,sqlite,Java,Android,Sqlite,我正在写一个android应用程序。我正在解析txt文件中的行,并将每行中的数据插入SQLite数据库。但插入过程恰好在1000个条目处停止。有3000多个条目,但插入过程在1000处停止。出什么事了 编辑:以下是代码: try{ InputStream is = ctx.getAssets().open("feedtitlesandaddresses.txt"); InputStreamReader iz=new InputStreamReade

我正在写一个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");}
试试看{
InputStream=ctx.getAssets().open(“feedTitlesAndAddresss.txt”);
InputStreamReader iz=新的InputStreamReader(is);
BufferedReader br=新的BufferedReader(iz);
ContentValues=新的ContentValues();
而((line=br.readLine())!=null){
StringTokenizer StringTokenizer=新的StringTokenizer(第行)
出什么事了

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

您是否考虑过
事务
?它可能会解决您的问题。我最近使用db和normal插入了100000行(但肯定是在事务中),因为如果没有事务,您的操作将花费大量时间

所以,正如我的建议,将代码封装到事务中,读写所需的时间将大大减少,应该可以解决这个问题

伪代码:

try {
   db.begiTransaction();
   ...
   // your work with file and inserting
   db.setTransactionSuccessful();
   ...
}
finally {
   if (db.inTransaction()) {
      db.endTransaction();
   }
}
更新: 查看文件中的1000.行,并让我知道。

步骤:

  • 转到SQLiteStudio
  • 选择工具>打开配置对话框>数据浏览
  • 在数据浏览中,现在每页将有
    数据行数
    选择你想要的尺寸

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

@raghasood:Added..android的readLine()方法如何处理txt文件中只包含回车或换行符的一行?这行=”“或null?@tim我想你说的是文件的结尾。它是null而不是”“。我指的是行的结尾。文本文件是否有可能包含一个“空白”行(除了行的结尾字符之外什么都没有),而readLine()正在将其解析为null方法?@tim不,这条线没有问题,我从这条线上方删除了2条线并运行了应用程序,现在第1000条是在问题线下方2条线的条目,所以这条线没有问题。谢谢你的回答。我尝试了你的建议,但仍然停留在1000条。这和其他条目一样。我不认为是这样文件有问题,因为该行与所有其他行一样,1000是一个太圆的数字..,它一定是sqlite或数据库的问题..@user2213396 uhm和任何错误?请尝试首先从文件中读取,将值保存到列表中,然后执行插入。