【发布时间】:2018-07-19 09:19:23
【问题描述】:
我是 kotlin 编程新手,在尝试关闭 BufferedReader 实例时遇到一个初始化错误。这是 kotlin 类:
package first.kot.kotprac
import android.os.AsyncTask
import android.util.Log
import java.io.BufferedReader
import java.io.File
import java.io.InputStreamReader
import java.net.ResponseCache
import java.net.URL
import javax.net.ssl.HttpsURLConnection
class MyAsyncTask : AsyncTask<Void, Void, Void>() {
private val TAG = "MyAsyncTask"
private var responseData = ""
override fun doInBackground(vararg params: Void?): Void? {
val reader : BufferedReader
try{
val url= URL("vvv")
val conn = url.openConnection() as HttpsURLConnection
val responseCode = conn.responseCode
Log.e(TAG,"Response code: "+responseCode);
if(responseCode == HttpsURLConnection.HTTP_OK){
reader = BufferedReader(InputStreamReader(conn.inputStream))
var sb = StringBuilder()
reader.lineSequence().forEach {
sb.append(it+"\n")
}
responseData = sb.toString()
}
}catch (e: Exception){
e.printStackTrace()
}
finally {
if(reader!=null)
reader.close() // Error line
}
return null
}
}
我经历了以下线程:
https://stackoverflow.com/questions/41537638/assignment-not-allowed-in-while-expression
但我不知道勾选答案中的第二种方式将如何确保缓冲区已关闭,我主要关心的是解决当前问题。请帮我解决这个问题。
【问题讨论】: