我从REST Web服务收到了一大段文本流,想直接将其写入文件。有什么最简单的方法吗?
我已经编写了下面这个函数扩展,它是可以工作的。但我觉得肯定有更简洁的方法。
注意:我希望使用try-with-resources自动关闭流和文件。
fun File.copyInputStreamToFile(inputStream: InputStream) {
val buffer = ByteArray(1024)
inputStream.use { input ->
this.outputStream().use { fileOut ->
while (true) {
val length = input.read(buffer)
if (length <= 0)
break
fileOut.write(buffer, 0, length)
}
fileOut.flush()
}
}
}
use
看起来像是一个错误。你正在不同于打开inputStream
的作用域中关闭/释放资源。 - Andre ArtusFileInputStream(someFile).use { stream -> stream.copyTo(someOutputStream) }
,对吗? - android developer