存储在字符串(文件的 base64)中的最大大小 - Java

Maximum size to store in a String (the base64 of a file) - Java

我有一个文件,然后我将它转换为 base64,最后这个 base64 被存储到一个字符串变量中。

问题是,我可以将其转换为 base64 并将其存储 文件 的最大大小是多少变量?

如果有人能帮助我。 提前谢谢你

(当然还有 Java...)

Strings 可以容纳大量数据* - 如果您以这种方式将整个文件放入内存,我会更关心您的可用堆内存。特别是当你必须小心不要在内存中两次进行 base64 转换...

*String 由数组内部支持,可以容纳 tp Integer.MAX_VALUE 个字符 (2^31-1)

如果您的进程有足够的堆内存,您可以这样计算:

  • Java中的一个char值占用2个字节的内存
  • base64 编码文件的每个字符在内部占用两个字节
  • base64 编码使 3 个字节变成 4 个字符。

应用一些数学,看看它是否适合,或者仔细思考为什么首先需要内存中的数据。