gpt4 book ai didi

java - Base64转字节数组解码优化——Java

转载 作者:行者123 更新时间:2023-11-30 10:10:39 24 4
gpt4 key购买 nike

我正在尝试将 base64 中的 pdf 解码为 Android 应用程序中的字节数组。这是我的代码:

byte[] documentByte = Base64.decode(pdfBase64, Base64.DEFAULT);

在大多数情况下都可以正常工作,但我收到了一份崩溃报告,其中似乎内存不足。另外,这个操作在启动应用程序时进行了很多次(我有一个包含大约 500 个文档的列表)所以我认为,即使对于不会崩溃的设备,以某种方式优化这个操作也会很好。

看了一下发现有些人在编码的时候把字节数组分割成不完全存入内存,不知道能不能解码。

有什么方法可以提高这个操作的性能(并尽量避免内存问题)?

最佳答案

我建议您不要将整个 base64 字符串加载到内存中。使用 InputStream 加载字节数组中的部分数据,从字节数组解码 base64 并将结果附加到缓存文件,如下所示:

        try {
InputStream in = new ByteArrayInputStream(base64.getBytes());
FileOutputStream out = new FileOutputStream(resultPath);
while (in.available() > 0) {
byte[] buffer = new byte[1024];
in.read(buffer);

byte[] decoded = Base64.decode(buffer, Base64.DEFAULT);
out.write(decoded, 0, decoded.length);
}
} catch (FileNotFoundException e) {
} catch (IOException e) {}

关于java - Base64转字节数组解码优化——Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52742282/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com