Можно ли добавить элементы в список массивов в Java, который уже сериализуется на диск, не перезагружая его в ОЗУ. Мне нужно это для сохранения структурированных данных из файла XML для загрузки данных в базу данных mysql. Файл XML содержит несколько ГБ данных, и проблема заключается в том, что я должен хранить все данные из файла XML для обработки данных?Добавление элементов в Serialized ArrayList без загрузки ArrayList в ОЗУ в JAVA
ответ
ArrayList
, или любая другая структура данных, если на то пошло, является структурой данных в памяти. Итак, все, что вы хотите поместить в эту структуру данных, должно быть загружено в память (ОЗУ).
Если вам интересно, как загружать данные, которые больше, чем сам размер памяти, рассмотрите возможность загрузки пакетами. например Загрузите первые записи n
, которые вписываются в ограничение памяти, а затем обрабатывают их. Как только вы закончите, отбросьте их и загрузите следующую партию и так далее.
ОК, я должен был пройти этот путь, но я надеялся, что кто-то знает, что можно сделать что по-другому – arget888
Я думаю, что, поскольку ваш XML-файл уже находится в ГБ, тогда лучшим подходом было бы читать XML-файл в Chunks и Save Chunk of Records to Database. Продолжайте делать это до тех пор, пока EOF не достигнет.
String encoding = "UTF-8";
int maxlines = 100;
BufferedReader reader = null;
BufferedWriter writer = null;
try {
reader = new BufferedReader(new InputStreamReader(new FileInputStream("/bigfile.txt"), encoding));
int count = 0;
for (String line; (line = reader.readLine()) != null;) {
if (count++ % maxlines == 0) {
close(writer);
writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("/smallfile" + (count/maxlines) + ".txt"), encoding));
}
writer.write(line);
writer.newLine();
}
} finally {
close(writer);
close(reader);
}
- 1. Добавление элементов в Arraylist
- 2. Добавление элементов в ArrayList
- 3. Добавление элементов в ArrayList в Java
- 4. Добавление нескольких ArrayList элементов в один ArrayList
- 5. Добавление элементов в массив без arrayList
- 6. ООП Java: добавление элементов в ArrayList
- 7. Java Добавление нескольких элементов в ArrayList
- 8. Добавление элементов массива в ArrayList
- 9. Добавление arraylist в java
- 10. Добавление элементов ArrayList в другой ArrayList из ArrayList
- 11. Добавление ArrayList в ArrayList
- 12. Добавление 128 ArrayList в другой ArrayList - Java
- 13. Поиск элементов ArrayList в ArrayList
- 14. Добавление ArrayList в 2х2 ArrayList
- 15. Добавление последовательных элементов ArrayList
- 16. Java ArrayList в ArrayList
- 17. Добавление ArrayList в другой файл ArrayList
- 18. Java - Сканирование элементов в ArrayList
- 19. Добавление к ArrayList в Java
- 20. Добавление объектов в ArrayList Java
- 21. ArrayList в ArrayList в java
- 22. Добавление элементов в ArrayList в правильном положении
- 23. Добавление элементов в ArrayList в цикле
- 24. Добавление элементов в ArrayList более понятным способом
- 25. добавление элементов другого arraylist by recursion-java
- 26. Добавление целое ArrayList в ArrayList в андроида
- 27. Java - добавление к ArrayList элементов из файла
- 28. Добавление элементов с веб-страницы в ArrayList в java
- 29. Добавление элементов в ArrayList с использованием шаблона builder в Java
- 30. Добавление в ArrayList
Является ли ArrayList сериализованным, используя стандартную сериализацию Java? Альтернативная сериализация? Ваша собственная сериализация? Нужно ли загружать XML-файл в качестве исходных объектов Java или вы можете просто обрабатывать его с помощью стандартных инструментов XML? – RealSkeptic
Я хочу сериализовать его с помощью стандартного Java serializazion. Я обрабатываю XML-файл подряд за строкой, потому что он большой, чтобы загрузить его в ram. Я анализирую каждый тег и сохраняю его в массивах, я хочу сериализовать эти массивы в объекты на диске, если размер в ram превысит какое-то значение. – arget888