代码之家  ›  专栏  ›  技术社区  ›  Jim Clermonts

使用contentResolver将docx转换为Base64在Android上提供了不可读的格式

  •  0
  • Jim Clermonts  · 技术社区  · 6 年前

    我有个档案 测试.docx

    enter image description here

    代码:

                val inputStream = context.contentResolver.openInputStream(uri)
                val allText = inputStream.bufferedReader().use(BufferedReader::readText)
                base64Image = Base64.encodeToString(allText.toByteArray(), Base64.NO_WRAP)
    

    正确的代码应该是什么?

    1 回复  |  直到 6 年前
        1
  •  1
  •   CommonsWare    6 年前

    DOCX 不是纯文本。它是二进制格式。使用 readBytes() 要读入字节:

    val bytes = context.contentResolver.openInputStream(uri).readBytes()
    

    请记住,你的应用程序将崩溃与 OutOfMemoryError