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)