求助 关于Base64解码的问题

Doom_DayByDay 2013-10-24 10:52:40
大家好 小弟求助

我在用Base64解码一个比较大的文件 大概在1M左右吧

然后我的做法是

FileOutputStream outStream = new FileOutputStream(localFile);
InputStream inputStream = conn.getInputStream();
byte[] buffer = new byte[1024];
int len = 0;
byte[] decode = null;
while ((len = inputStream.read(buffer)) != -1)
{
decode = Base64.decode(buffer, 0, len, Base64.DEFAULT);
outStream.write(decode, 0, decode.length);
}
inputStream.close();
outStream.close();


运行时提示java.lang.IllegalArgumentException: bad base-64

求助这是什么问题 难道不能分段解码?
只能整个解码么?(文件比较大比较多,容易溢出啊)
求助大家了
...全文
587 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
天莫邪 2014-08-13
  • 打赏
  • 举报
回复
楼主怎么解决的?我也出现相同的问题。还愿告知。谢谢
天莫邪 2014-08-13
  • 打赏
  • 举报
回复
楼主怎么解决的??
Doom_DayByDay 2013-10-24
  • 打赏
  • 举报
回复
好的 谢谢楼上大神了 我去试试
Birds2018 2013-10-24
  • 打赏
  • 举报
回复
如果是大文件,你调整JVM堆内存, base64解码的时候 如果读的流不全 是解不出来的。
qingqing_benniu 2013-10-24
  • 打赏
  • 举报
回复
引用 6 楼 u011389105 的回复:
我是要解码
我错啦 看错啦...
Doom_DayByDay 2013-10-24
  • 打赏
  • 举报
回复
我是要解码
qingqing_benniu 2013-10-24
  • 打赏
  • 举报
回复
String string=Base64.encodeToString(bytes,Base64.DEFAULT); 试下这样子呢
Doom_DayByDay 2013-10-24
  • 打赏
  • 举报
回复
引用 3 楼 qingqing_benniu 的回复:
你可以一个文件一个文件的读
这个 我试过一个一个的读 把流读完整在解码 但是文件太大 一般都是处理到底六七个文件的时候就报溢出了。。 所以我才想能不能分段解码
qingqing_benniu 2013-10-24
  • 打赏
  • 举报
回复
你可以一个文件一个文件的读
Doom_DayByDay 2013-10-24
  • 打赏
  • 举报
回复
哈哈 又是你大神 不可以 读一段解一段么 因为我要解很多这样的大文件 要是整个读进来的话 会溢出了
Birds2018 2013-10-24
  • 打赏
  • 举报
回复
decode = Base64.decode(buffer, 0, len, Base64.DEFAULT); outStream.write(decode, 0, decode.length); 流没有完整的读完,直接解码是有问题的, 先把IO流的数据都读完 然后再解码

80,354

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧