2016-04-07 5 views
0

私はおよそ1.5ギガバイトxmlのファイルを持っています。私はこの大きなファイルを読んでいます。 しかし、私は次のエラーが発生しています。1.5GBのXMLファイルをOutOfMemoryErrorなしで読み込んで文字列に割り当てる方法は?

UPDATE:以上の処理は、大規模なXMLファイルを読み込むための最良の方法は、SAXパーサーを使用することで、文字列に

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space 
    at java.util.Arrays.copyOf(Unknown Source) 
    at java.lang.AbstractStringBuilder.expandCapacity(Unknown Source) 
    at java.lang.AbstractStringBuilder.ensureCapacityInternal(Unknown Source) 
    at java.lang.AbstractStringBuilder.append(Unknown Source) 
    at java.lang.StringBuilder.append(Unknown Source) 
    at gercek.FileToArrayOfBytes.main(FileToArrayOfBytes.java:28) 
+1

本当に一度に全部読む必要がありますか? – Kayaman

+0

どうすればいいですか? –

+1

文書を1回で分析できる場合は、SAXパーサーを使用してください(推奨)。できない場合は、対応するjvmオプションを使用してヒープサイズを増やしてください。 –

答えて

3

を割り当てた後、私はこのXMLを読みたいです。一度に完全なファイルをロードしないという意味では効率的です。そして、あなたはoutofmemoryexceptionを取り除くことができます。

+0

カラン・ヴァーマー:)それは答えではありませんが、私はあなたに投票点を与えるでしょう:)しかし、私は再びそれを見ます。 –

+0

SAXではなくStAXを使用することを提案します。それはとても使いやすいです。 – Andreas

関連する問題