Android 如何防止读卡器跳过第一行?
我正在尝试从文本文件中读取行。现在我在数行,它跳过了第一行。如果(line==null)break,我认为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) {
有问题。我很确定我漏掉了什么。所以请看一下我的代码
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