Java: запись объекта в файл, избегая java.lang.StackOverflowError - PullRequest
0 голосов
/ 31 декабря 2011

Я хочу записать большой объем данных в файл.данные содержатся в объекте.Объект реализован как сериализуемый.Дело в том, что когда я пытаюсь записать его в файл с помощью объекта ObjectOutputStream writeObject, он выдает StackOverflowError, потому что размер объекта велик.

Мне нужно только сохранить объект, чтобы я мог открыть и использовать егоСнова измените некоторые значения и снова сохраните на диск.

Объектный файл - это NeuralNetwork, созданный с помощью инфраструктуры Neuroph, поэтому я не люблю заглядывать в его большой код, собирать данные один за другим и сериализовать материал.

Пожалуйста, кто-нибудь может предложить способ нарезки объекта (или некоторый эффект буферизации) и сохранить хотя бы.я думаю, что такого рода вещи могли бы помочь.

Спасибо.:)

Ответы [ 2 ]

2 голосов
/ 31 декабря 2011

Можете ли вы рассмотреть вопрос об увеличении размера стека (-Xss2m или около того), поскольку, возможно, наличие большего в стеке позволит вам сделать это?

Кроме того, на самом деле нет способа сократить его.граф объектов для сериализации (без понимания объектов).

0 голосов
/ 31 декабря 2011

Это может быть ошибкой в ​​Neuroph, потому что графы могут иметь циклические пути, приводящие к бесконечной рекурсии.

В этом случае вам необходимо выполнить (де) сериализацию самостоятельно. По крайней мере, вы узнаете некоторые. С отражением это относительно просто, так как каркас Neuroph скудный.

Есть ли у них достойный форум разработчиков?

...