0

この質問を繰り返している場合はまず申し訳ありませんが、私の問題に関連する解決策が見つかりません。

以下の問題を解決する方法を見つけるのに苦労しています。

1) xml に 30 MB から 400 MB を超えるデータを書き込まなければならないシナリオに直面しています。「String」オブジェクトを使用してデータを xml に追加すると、「OutOfMemory」例外が発生します。

研究開発により多くの時間を費やした後、「ストリーム」を使用するとこの問題が解決されることがわかりました。しかし、これについてはよくわかりません。

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

データを転送する前に圧縮することを検討します。 ZipOutputStream を使用できます。

メモリ不足の例外については、ヒープ サイズを増やすことを検討できます。これを確認してください:Javaでヒープサイズを増やします

試したヒープサイズの値、コード、および例外トレースを投稿できますか?

于 2013-03-26T04:08:48.713 に答える
1

StAX または SAX を使用します。これらは、生成した XML 部分をオンザフライで OutputStream に書き込むため、任意のサイズの XML を作成できます。

于 2013-03-26T04:11:13.300 に答える
0

あなたがすべきことは

まず、XML パーサーを使用して、XML 形式のデータを読み書きします。SAX または DOM の可能性があります。データ サイズが大きい場合は、XML タグを保存する必要がないため、CSV 形式を試してください。

第二に、出力ファイルを作成するときは、それらが小さな小さなファイルであることを確認してください。

3 番目に、ネットワーク経由で送信する場合は、すべてを圧縮したことを確認してください。

そして念のため、この設計のためにユーザーのモバイル データの上限を使い果たしてはいけません。このファイル サイズについてユーザーに警告し、WiFi ネットワークを使用するよう提案します。

于 2013-03-26T04:53:54.387 に答える