首先对不起,如果我重复这个问题,但我没有找到任何相关解决方案来解决我的问题。
我很难找到解决以下问题的方法。
1)我面临的情况是我必须在xml中写入超过30 MB - 400 MB的数据。当我使用'String'对象将数据附加到xml时,我得到'OutOfMemory'异常。
在花费更多时间做R& D之后,我发现使用“Stream”将解决此问题。但我不确定这一点。
2)构建xml后,我必须使用Android设备将此数据发送到DMZ服务器。据我所知,在这种情况下使用Http发送大量数据很困难。在这种情况下,
a) Using FTP will be helpful in this scenario?
b) Splitting the data into chunks of data and sending will be helpful?
请告诉我你的建议。提前致谢。
答案 0 :(得分:2)
我会考虑在将数据翻过来之前压缩数据。你可以使用ZipOutputStream。
对于Out of Memory Exception,您可以考虑增加堆大小。 检查一下:Increase heap size in Java
您可以发布一些您尝试过的堆大小值,代码和一些异常跟踪吗?
答案 1 :(得分:1)
使用StAX或SAX。这些可以创建任何大小的XML,因为它们会动态地将它们生成的XML部分写入OutputStream。
答案 2 :(得分:0)
你应该做的是
首先,使用XML解析器以XML格式读取和写入数据。它可能是SAX或DOM。如果数据大小很大,请尝试CSV格式,因为您不必存储XML标记,所以占用的空间更少。
其次,在创建输出文件时,请确保它们是小的小文件。
第三次通过网络发送时,请确保将所有内容压缩。
为了上帝的缘故,不要为此设计消耗用户移动数据上限。警告用户此文件大小并建议他使用WiFi网络。