【发布时间】:2016-10-26 16:46:49
【问题描述】:
我正在使用以下函数将 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;
}
【问题讨论】:
-
怎么了?你知道正确的结果吗?最后,你想做什么?
-
也许你必须使用不同的编码? UTF-8?必须与保存的 pdf 文件相同。
-
你看看你是否将一个 2MB 的 pdf 文件转换为字符串,这能这么短这么小吗?此外,我在 php 服务器中进行了 base64 解码,输出是无效的 pdf ......所以这样我就知道输出是错误的。 @Sergey Glotov
-
可以在Android Studio 2.3.1中解析符号IOUtils
标签: android