From 5f61d2e178d4eac4f66fa63fab611f3e7440913f Mon Sep 17 00:00:00 2001 From: kunfei Date: Sat, 19 Feb 2022 09:35:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/legado/app/model/localBook/TextFile.kt | 28 +++++-------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/io/legado/app/model/localBook/TextFile.kt b/app/src/main/java/io/legado/app/model/localBook/TextFile.kt index 9b06dd5d0..0c888f7db 100644 --- a/app/src/main/java/io/legado/app/model/localBook/TextFile.kt +++ b/app/src/main/java/io/legado/app/model/localBook/TextFile.kt @@ -90,42 +90,28 @@ class TextFile(private val book: Book) { /** * 按规则解析目录 */ - private fun analyze( - pattern: Pattern?, - fileStart: Long = 0L, - fileEnd: Long = Long.MAX_VALUE - ): ArrayList { - pattern ?: return analyze(fileStart, fileEnd) + private fun analyze(pattern: Pattern?): ArrayList { + pattern ?: return analyze() val toc = arrayListOf() LocalBook.getBookInputStream(book).use { bis -> var blockContent: String //加载章节 var curOffset: Long = 0 //读取的长度 - var length = 0 + var length: Int val buffer = ByteArray(bufferSize) var bufferStart = 3 - if (fileStart == 0L) { - bis.read(buffer, 0, 3) - if (Utf8BomUtils.hasBom(buffer)) { - bufferStart = 0 - curOffset = 3 - } - } else { - bis.skip(fileStart) - curOffset = fileStart + bis.read(buffer, 0, 3) + if (Utf8BomUtils.hasBom(buffer)) { bufferStart = 0 + curOffset = 3 } //获取文件中的数据到buffer,直到没有数据为止 while ( - fileEnd - curOffset - bufferStart > 0 && bis.read( buffer, bufferStart, - min( - (bufferSize - bufferStart).toLong(), - fileEnd - curOffset - bufferStart - ).toInt() + bufferSize - bufferStart ).also { length = it } > 0 ) { var end = bufferStart + length