Да, это произойдет, когда read == -1
.Вы должны проверить это, прежде чем использовать его:
do {
read = `in`.read(buffer)
handler.post(ProgressUpdater(uploaded, fileLength!!))
if (read == -1) {
break
}
uploaded += read.toLong()
sink.write(buffer, 0, read)
} while (true)
Или, возможно:
do {
read = `in`.read(buffer)
if (read == -1) {
break
}
uploaded += read.toLong()
sink.write(buffer, 0, read)
handler.post(ProgressUpdater(uploaded, fileLength!!))
} while (true)