Этот объект String будет иметь размер до 50 ГБ (50 МБ * 500 * 2).Вы знаете об этом, не так ли?
Когда вы говорите о вводе файлов и хотите сохранить сериализованные данные XML в строку, вам не нужно анализировать файлы, номожет просто добавить содержимое файла в ваш StringBuilder.
Предполагается, что все файлы находятся в одной папке и с небольшой помощью commons-io, это должно сделать это (... не на моей машине с 4 ГБRam, кстати):
File[] files = parentFolder.list();
StringBuilder veryVeryBigBuilder = new StringBuilder();
for (File file: files) {
if (isXmlFile(file)) {
veryVeryBigBuilder.append(FileUtils.readFileToString(), encoding);
}
}