如何在xml中写入超过30 MB的数据?

时间:2013-03-26 04:02:03

标签: java android

首先对不起,如果我重复这个问题,但我没有找到任何相关解决方案来解决我的问题。

我很难找到解决以下问题的方法。

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?

请告诉我你的建议。提前致谢。

3 个答案:

答案 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网络。