HttpURLConnection上传大文件内存溢出

Posted by PanMin on December 16, 2016

HttpURLConnection上传大文件内存溢出的原因及解决办法

由于HttpURLConnection默认是有缓存机制的,在对文件操作时,会将读取的数据写入到缓存区中,并不是直接写入到服务器上,只有当流被关闭时,才将数据提交到服务器上。当缓存区的数据大于虚拟机给点的内存时,就导致内存溢出。

解决办法: conn.setChunkedStreamingMode(0);设置该选项,则不使用HttpURLConnection的缓存机制,直接将流提交到服务器上。