簡體   English   中英

分配不是表達式,並且在此上下文中僅允許表達式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM