Во-первых, у меня была проблема с получением данных из базы данных, это заняло слишком много памяти и не удалось. Я установил -Xmx1500M и использую прокрутку ResultSet, чтобы об этом позаботились. Теперь мне нужно сделать XML из данных, но я не могу поместить его в один файл. На данный момент я делаю это так:
while(rs.next()){
i++;
xmlStringBuilder.append("\n\t<row>");
xmlStringBuilder.append("\n\t\t<ID>" + Util.transformToHTML(rs.getInt("id")) + "</ID>");
xmlStringBuilder.append("\n\t\t<JED_ID>" + Util.transformToHTML(rs.getInt("jed_id")) + "</JED_ID>");
xmlStringBuilder.append("\n\t\t<IME_PJ>" + Util.transformToHTML(rs.getString("ime_pj")) + "</IME_PJ>");
//etc.
xmlStringBuilder.append("\n\t</row>");
if (i%100000 == 0){
//stores the data to a file with the name i.xml
storeKBR(xmlStringBuilder.toString(),i);
xmlStringBuilder= null;
xmlStringBuilder= new StringBuilder();
}
и это работает; Я получаю 12 100 МБ файлов. Теперь я хотел бы, чтобы все эти данные были в одном файле (который я затем сжимаю), но если просто удалить часть if, я выхожу из памяти. Я думал о попытке записать в файл, закрыть его, затем открыть, но это не сильно меня позаботилось, так как при открытии я должен был загрузить файл в память.