Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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
Android 如何防止读卡器跳过第一行?_Android_File_Kotlin_Bufferedreader - Fatal编程技术网

Android 如何防止读卡器跳过第一行?

Android 如何防止读卡器跳过第一行?,android,file,kotlin,bufferedreader,Android,File,Kotlin,Bufferedreader,我正在尝试从文本文件中读取行。现在我在数行,它跳过了第一行。如果(line==null)break,我认为有问题。我很确定我漏掉了什么。所以请看一下我的代码 override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { if (data == null) return if (requestCode==requestcode) {

我正在尝试从文本文件中读取行。现在我在数行,它跳过了第一行。如果(line==null)break,我认为
有问题。我很确定我漏掉了什么。所以请看一下我的代码

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        if (data == null)
            return
        if (requestCode==requestcode) {
            val filepath=data.data
            file = filepath.toString()
            val cursor=contentResolver.openInputStream(android.net.Uri.parse(filepath.toString()))
            lbl.text=filepath.toString()
            master_path=filepath.toString()
            noti=cursor.toString()
            val db=this.openOrCreateDatabase("database.db", Context.MODE_PRIVATE, null)
            val tableName="Master"
            db.execSQL("delete from $tableName")
            val text =  StringBuilder()
            try {
                if (resultCode == Activity.RESULT_OK) {
                    try {
                        val file=InputStreamReader(cursor)
                        val buffer=BufferedReader(file)
                        buffer.readLine()
                        var lineCount = 0
                        db.beginTransaction()

                        while(true) {
                            val line=buffer.readLine()

                            if (line == null) break //Something is wrong here I Think
                            lineCount++

                        }
                        println(lineCount.toString())
                        line = lineCount
                        db.setTransactionSuccessful()
                        db.endTransaction()
                    } catch (e: IOException) {
                        if (db.inTransaction())
                            db.endTransaction()
                        val d=Dialog(this)
                        d.setTitle(e.message.toString() + "first")
                        d.show()
                    }

                } else {
                    if (db.inTransaction())
                        db.endTransaction()
                    val d=Dialog(this)
                    d.setTitle("Only CSV files allowed")
                    d.show()
                }
            } catch (ex: Exception) {
                if (db.inTransaction())
                    db.endTransaction()

                val d=Dialog(this)
                d.setTitle(ex.message.toString() + "second")
                d.show()
            }

        }

    }

刚刚删除了
buffer.readline()
之前的
while(true)
并且它可以工作

我想这是因为你在
while(true)
之前调用了
buffer.readline()
一次,我想你是对的。等等,让我查一下。傻我,谢谢@Housefly