0

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

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

1)我面临一个场景,我必须在 xml 中写入超过 30 MB - 400 MB 的数据。当我使用“字符串”对象将数据附加到 xml 时,出现“OutOfMemory”异常。

在花了更多时间进行研发之后,我开始知道使用“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?

请让我知道您的建议。提前致谢。

4

3 回答 3

2

我会考虑在 ftping 之前压缩数据。你可以使用 ZipOutputStream 。

对于内存不足异常,您可以考虑增加堆大小。检查这个:增加Java中的堆大小

您可以发布一些您尝试过的堆大小值、代码和一些异常跟踪吗?

于 2013-03-26T04:08:48.713 回答
1

使用 StAX 或 SAX。它们可以创建任何大小的 XML,因为它们将生成的 XML 部分即时写入 OutputStream。

于 2013-03-26T04:11:13.300 回答
0

你应该做的是

首先,使用 XML 解析器以 XML 格式读取和写入数据。它可以是 SAX 或 DOM。如果数据量很大,请尝试使用 CSV 格式,因为您不必存储 XML 标签,因此占用的空间更少。

其次,在创建输出文件时,请确保这些是小文件。

第三,通过网络发送时,请确保您已压缩所有内容。

看在上帝的份上,不要为这个设计吃掉用户的移动数据上限。警告用户此文件大小并建议他使用 WiFi 网络。

于 2013-03-26T04:53:54.387 回答