Die Daten schreibe ich so:
private static ArrayList<Route> routes = new ArrayList<>();
//...
try (BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("routes.json"))) {
gson.toJson(routes, bufferedWriter);
}
Lesen im Stream mode:
try (JsonReader newJsonReader = gson.newJsonReader(new InputStreamReader(new FileInputStream("routes.json"), "UTF-8"))) {
newJsonReader.beginArray();
while (newJsonReader.hasNext()) {
routes.add(gson.fromJson(newJsonReader, Route.class));
}
newJsonReader.endArray();
}
Das serialisieren funktioniert auch, 1GiB json Datei (mit den richtigen Werten) und alles in einer Zeile.
routes
hat danach über 10 Mio. Objekte, aber alle Fields sind 0.
private static ArrayList<Sys> syss1 = new ArrayList<>();
Kann hingegen problemlos geschrieben und gelesen werden.
Ich denke, es könnte an der Größe liegen?