2017-05-26 738 views
0

我有一个文件,然后将其转换为base64,最后将此base64存储到一个String变量中。存储在字符串中的最大大小(文件的base64) - Java

,问题是,什么是文件的最大尺寸,我可以转换为Base64和在一个字符串变量?

如果有人可以帮助我。 预先感谢您

(当然,Java的...)

+0

另请参见[Java字符串可以有多少个字符?](https://stackoverflow.com/questions/1179983/how-many-characters-can-a-java-string-have) –

回答

0

String S能容纳大量的数据* - 我会更关心你的可用堆内存,如果你把一个整体以这种方式将文件存入内存特别是你必须小心,不要在内存中有两次base64转换...

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

如果你有你的过程足够的堆内存,你可以计算如下:

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

应用一些数学算法,看看它是否适合或认真努力,为什么你首先需要内存中的数据。

+0

是的,但是什么是**大约**我可以使用的文件的最大大小... –

+0

这大概取决于您的内存......分配了多少堆?复制期间需要多少钱? – Jan

+0

我的最大堆大小是4'294'967'296,我的初始堆大小是268'435'456 –

相关问题