From da9de7a82346880d0b07309f70a09daaf7c72d8f Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Tue, 4 Jul 2023 00:25:56 +0800 Subject: [PATCH] Truncate file to the size actually written --- app/src/main/java/com/hippo/ehviewer/spider/SpiderDen.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/spider/SpiderDen.kt b/app/src/main/java/com/hippo/ehviewer/spider/SpiderDen.kt index 7b2e39f3b..865210944 100644 --- a/app/src/main/java/com/hippo/ehviewer/spider/SpiderDen.kt +++ b/app/src/main/java/com/hippo/ehviewer/spider/SpiderDen.kt @@ -142,7 +142,7 @@ class SpiderDen(private val mGalleryInfo: GalleryInfo) { awaitBodyFully { buffer -> val read = chan.write(buffer) notifyProgress(length, info.receivedByteCount, read) - } + }.also { size -> if (chan.size() != size) chan.truncate(size) } } } } @@ -185,7 +185,7 @@ class SpiderDen(private val mGalleryInfo: GalleryInfo) { val extension = contentType?.subtype ?: "jpg" val length = response.body.contentLength() return saveResponseMeta(index, extension, length) { outFile -> - object : ForwardingSink(outFile.openOutputStream().sink()) { + object : ForwardingSink(outFile.openOutputStream().also { it.channel.truncate(0) }.sink()) { var totalBytesRead = 0L override fun write(source: Buffer, byteCount: Long) { super.write(source, byteCount)