android - 在android中将pdf转换为String

标签 android

我正在使用以下函数将 pdf 转换为字符串:

        private String GetString(String filepath) throws IOException {
        InputStream inputStream = new FileInputStream(filepath);
        String inputStreamToString = inputStream.toString();
        byte[] byteArray = inputStreamToString.getBytes();
        String encoded = Base64.encodeToString(byteArray, Base64.DEFAULT);
        return encoded;
    }

我得到的输出是:

amF2YS5pby5GaWxlSW5wdXRTdHJlYW1ANTM1MDhmNTg=

我发现这个输出是错误的。因为当我编码一个 2MB 的 pdf 文件时,它肯定不能这么短。实际上我在 php 服务器中解码了 base64,输出是一个无效的 pdf。所以我的问题是函数中缺少什么?

好的。问题解决了。以下是执行此操作的正确代码:

private String GetString(String filepath) throws IOException {
            InputStream inputStream = new FileInputStream(filepath);
            byte[] byteArray = IOUtils.toByteArray(inputStream);
            String encoded = Base64.encodeToString(byteArray, Base64.DEFAULT);
            return encoded;
        }

最佳答案

错误的部分是:String inputStreamToString = inputStream.toString();。结果,您不会获得输入流的内容,您只会获得类似“FileInputStream@021849”的内容。

您应该以另一种方式从流中读取,例如:Android FileInputStream read() txt file to String

顺便说一句,您可以直接将文件读取为字节数组,而不是将文件读取为字符串并将其转换为字节数组。

关于android - 在android中将pdf转换为String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38007059/

相关文章:

java - 弹出窗口的背景变暗或模糊

android - 奥托总线事件,仅应调用单个订阅

android - 将项目附加到 ListView

java - 如何检查用户输入的值是否有效?

android - 从android手机上的android studio运行后,应用只会打开和关闭

android - 表格行中的多行 TextView 未正确换行

Android - 在按钮内旋转图像

java - 如何使用 jQuery params() 解析深层 URL?

java - 从 Android 移动应用程序连接到笔记本电脑上的数据库

android - 如何在独立应用程序中确定当前调用者的电话号码