Я пытаюсь сохранить большой объект в JSON. Я использую Gson, но у меня есть исключение, связанное с памятью (пространство кучи Java). Я прочитал, что я должен использовать сериализацию. Но я не знаю, как это сделать до конца. Я пытаюсь создать JsonWriter, но у меня есть исключение, что JsonWriter является абстрактным методом, и я должен переопределить методы: writeArray (); writeObject (); написать () и закрыть (). Я не знаю, как их переопределить.
Код:
private void sendFile(sessContext sc,OutputStream out){
String shipId = sc.getRequest().getParameter("shipid");
Ship ship = m_ship.find(Long.parseLong(shipId));
Gson gson = new GsonBuilder()
.excludeFieldsWithModifiers(Modifier.STATIC, Modifier.TRANSIENT, Modifier.VOLATILE)
.setPrettyPrinting()
.create();
try{
JsonWriter writer = new JsonWriter(new OutputStreamWriter(out, "UTF-8")); //<- error "'JsonWriter' is abstract, cannot be instantiated"
String toJson = gson.toJson(ship); // <- error ("Java heap space")
sendFile(sc,ship);}
catch(Excepiton e){
e.printStackTrace();
}
}