Вы используете StringWriter
, что означает, что вы продолжаете записывать содержимое файла XML в буфер в памяти. Таким образом, очевидно, что если последний буфер остается в памяти и еще не собран мусором, вы нажмете OutOfMemory
.
Кстати, я не понимаю, как ваша программа решает вашу проблему. Это просто обрезка всего документа. Это означает, что он очистит пробелы в начале и конце документа.
Я предлагаю вам сказать, что вам не нужно беспокоиться о пустом месте и анализировать документ с помощью StAX или чего-либо подходящего вам. И, при необходимости, обрезать вещь при разборе.
Однако, очистка может помочь. Таким образом, можно быстро исправить это,
..
..
String str = writer.toString().trim();
writer.flush();
return str;
..
..
NB: пробелы вокруг элементов XML будут игнорироваться парсером, тем не менее. Если вам нужно обрезать значения некоторых атрибутов / элементов, это другая история.