![](/img/trans.png)
[英]Assignments are not expressions and only expressions are allowed in this context - Kotlin
[英]Assignments are not expressions, and only expressions are allowed in this context
private fun copyDatabase(context: Context): Boolean {
try {
val inputStream = context.assets.open(DatabaseHelper.DBNAME)
val outFileName = DatabaseHelper.DBLOCATION + DatabaseHelper.DBNAME
val outputStream = FileOutputStream(outFileName)
val buff = ByteArray(1024)
var length = 0
while((length = inputStream.read(buff)) > 0) {
outputStream.write(buff , 0 , length)
}
outputStream.flush()
outputStream.close()
Log.w("MainActivity" , "DB copied")
return true
} catch (e: Exception) {
e.printStackTrace()
return false
}
}
這段代碼中的“雖然”不起作用,但我需要幫助
似乎您正在嘗試將InputStream內容復制到OutputStream。 對於此任務,您可以在Kotlin中使用InputStream.copyTo
擴展功能:
// instead of while loop
inputStream.copyTo(outputStream, bufferSize = 1024)
您可以這樣解決:
...
var length = inputStream.read(buff)
while(length > 0) {
outputStream.write(buff , 0 , length)
length = inputStream.read(buff)
}
...
但是@Ilya是對的,您在Kotlin的土地上,最好使用Kotlin提供的工具
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.