This commit is contained in:
gedoor
2022-01-06 14:18:50 +08:00
parent bddbe400e3
commit b0fe90c309
@@ -25,17 +25,17 @@ class TextFile(private val book: Book) {
LocalBook.getBookInputStream(book).use { bis -> LocalBook.getBookInputStream(book).use { bis ->
val buffer = ByteArray(BUFFER_SIZE) val buffer = ByteArray(BUFFER_SIZE)
var blockContent: String var blockContent: String
bis.read(buffer) var length = bis.read(buffer)
book.charset = EncodingDetect.getEncode(buffer) book.charset = EncodingDetect.getEncode(buffer)
charset = book.fileCharset() charset = book.fileCharset()
blockContent = String(buffer, charset) blockContent = String(buffer, 0, length, charset)
rulePattern = if (book.tocUrl.isNotEmpty()) { rulePattern = if (book.tocUrl.isNotEmpty()) {
Pattern.compile(book.tocUrl, Pattern.MULTILINE) Pattern.compile(book.tocUrl, Pattern.MULTILINE)
} else { } else {
if (blockContent.isEmpty()) { if (blockContent.isEmpty()) {
bis.read(buffer) length = bis.read(buffer)
book.charset = EncodingDetect.getEncode(buffer) book.charset = EncodingDetect.getEncode(buffer)
blockContent = String(buffer, charset) blockContent = String(buffer, 0, length, charset)
} }
getTocRule(blockContent)?.let { getTocRule(blockContent)?.let {
Pattern.compile(it.rule, Pattern.MULTILINE) Pattern.compile(it.rule, Pattern.MULTILINE)