6

Java で Json 形式に書き込もうとしたところ、ファイル サイズが 1GB を超えると NullPointerException が発生しました。誰でもこの問題を解決するのを手伝ってもらえますか?

コードは Json ファイルを生成し続け、ファイルのサイズは増加し続けます。ファイル サイズが 1GB を超えると、コードは以下に示すように例外をスローします。テストには別のデータセットを使用したので、データの問題ではないと思います。私の推測では、Java の Gson.toJson にはサイズ制限があると思います。

私のコードは次のとおりです。

private HashMap<String,HashSet<Token>> tokenCounter = new HashMap<String,HashSet<Token>>();

....

private void writeToFile(){
  try {
    PrintWriter out = new PrintWriter(outputFileName);
    out.println(gson.toJson(tokenCounter));
    out.close();
    } catch (IOException e) {
      e.printStackTrace();
  } 
}

スローされる例外は次のとおりです。

java.lang.NullPointerException
    at java.lang.String.<init>(String.java:301)
    at java.lang.StringBuffer.toString(StringBuffer.java:790)
    at java.io.StringWriter.toString(StringWriter.java:204)
    at com.google.gson.Gson.toJson(Gson.java:481)
    at com.google.gson.Gson.toJson(Gson.java:460)
    at com.ebay.classification.discovery.DailyDiscovery.writeToFile(DailyDiscovery.java:181)
    at com.ebay.classification.discovery.DailyDiscovery.run(DailyDiscovery.java:169)
    at com.ebay.classification.discovery.TestDailyDiscoveryContinue.run(TestDailyDiscoveryContinue.java:142)
    at com.ebay.classification.discovery.TestDailyDiscoveryContinue.main(TestDailyDiscoveryContinue.java:245)
4

1 に答える 1