From 29e4e77c44dacd39f9979c62f3182920c2e3371f Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Thu, 4 Apr 2024 22:09:10 +0800 Subject: [PATCH] Open file descriptor in "wt" mode for overwriting --- app/src/main/kotlin/com/hippo/ehviewer/spider/ComicInfo.kt | 1 - app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderDen.kt | 3 +-- app/src/main/kotlin/com/hippo/ehviewer/util/FDUtils.kt | 2 +- app/src/main/kotlin/com/hippo/unifile/UniFileExtensions.kt | 2 +- 4 files changed, 3 insertions(+), 5 deletions(-) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/spider/ComicInfo.kt b/app/src/main/kotlin/com/hippo/ehviewer/spider/ComicInfo.kt index 90a7686e7..6d3bd160e 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/spider/ComicInfo.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/spider/ComicInfo.kt @@ -99,7 +99,6 @@ fun ComicInfo.toSimpleTags() = listOfNotNull( fun ComicInfo.write(file: UniFile) { file.openOutputStream().use { - it.channel.truncate(0) OutputStreamWriter(it, Charsets.UTF_8).use { writer -> xmlStreaming.newGenericWriter(writer).use { xmlWriter -> xml.encodeToWriter(xmlWriter, ComicInfo.serializer(), this) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderDen.kt b/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderDen.kt index fe0879804..881b769ea 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderDen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderDen.kt @@ -191,8 +191,7 @@ class SpiderDen(val info: GalleryInfo) { val extension = MimeTypeMap.getFileExtensionFromUrl(url).ifEmpty { "jpg" } return saveResponseMeta(index, extension) { outFile -> outFile.openOutputStream().use { - val chan = it.channel.apply { truncate(0) } - response.bodyAsChannel().copyTo(chan) + response.bodyAsChannel().copyTo(it.channel) } } } diff --git a/app/src/main/kotlin/com/hippo/ehviewer/util/FDUtils.kt b/app/src/main/kotlin/com/hippo/ehviewer/util/FDUtils.kt index 4ffb835d6..537ef05f0 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/util/FDUtils.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/util/FDUtils.kt @@ -25,5 +25,5 @@ infix fun ParcelFileDescriptor.sendTo(fd: ParcelFileDescriptor) { } infix fun UniFile.sendTo(file: UniFile) = openFileDescriptor("r").use { src -> - file.openFileDescriptor("w").use { dst -> src sendTo dst } + file.openFileDescriptor("wt").use { dst -> src sendTo dst } } diff --git a/app/src/main/kotlin/com/hippo/unifile/UniFileExtensions.kt b/app/src/main/kotlin/com/hippo/unifile/UniFileExtensions.kt index 5c136051b..5848162e2 100644 --- a/app/src/main/kotlin/com/hippo/unifile/UniFileExtensions.kt +++ b/app/src/main/kotlin/com/hippo/unifile/UniFileExtensions.kt @@ -22,7 +22,7 @@ fun UniFile.openInputStream(): FileInputStream { * Use Native IO/NIO directly if possible, unless you need process file content on JVM! */ fun UniFile.openOutputStream(): FileOutputStream { - return AutoCloseOutputStream(openFileDescriptor("w")) + return AutoCloseOutputStream(openFileDescriptor("wt")) } fun UniFile.sha1() = openFileDescriptor("r").use { sha1(it.fd) }