我有一个文件 test.docx ,其中包含1个单词“ Testing”。该文件位于我的保管箱文件夹中,我使用contentResolver在App中打开它。
代码:
val inputStream = context.contentResolver.openInputStream(uri)
val allText = inputStream.bufferedReader().use(BufferedReader::readText)
base64Image = Base64.encodeToString(allText.toByteArray(), Base64.NO_WRAP)
allText会返回一些数据,但是当将其放入文本文件并将其另存为.docx时,我无法查看它,它已损坏。我想我应该将一个Charset添加到bufferedReader方法中。尝试了几次,但没有一个起作用。
正确的代码应该是什么?
答案 0 :(得分:1)
DOCX
不是纯文本。它是二进制格式。使用readBytes()
读取字节:
val bytes = context.contentResolver.openInputStream(uri).readBytes()
请记住,您的应用会因大内容而以OutOfMemoryError
崩溃。请重新考虑您阅读全部内容的计划,更不用说将其转换为base64了。