У меня есть очень большой текстовый файл (около 8,5 миллионов строк, 1 ГБ), который составлен из географической информации (проект Geoname, для тех, кто слышал об этом). В настоящее время я использую BufferedReader и обнаружил, что моя программа может удобно читать 10000 строк и отображать некоторые требуемые данные без большой паузы. Тем не менее, я должен читать и искать каждую строку во всем файле, и как только я тестирую его с более чем 50000 строк, программа становится очень медленной и в основном бесполезной. Каковы некоторые опции для деления файла и чтения его в кусках, что сокращает время выполнения?Чтение большого текстового файла в кусках Обработка
1
A
ответ
-1
Подробнее о классе java.nio.Buffer и его подклассах. Особенно обратите внимание на правильные и непрямые буферы и плюсы и минусы их использования. Прямые буферы обеспечивают прямой доступ к диску и возможность обработки очень больших файлов в кусках и очень быстро. Но эта отличная способность связана с некоторой ценой и риском утечки памяти. Но я думаю, что это то, что вам может понадобиться. Начните читать здесь: https://docs.oracle.com/javase/8/docs/api/java/nio/Buffer.html
Смежные вопросы
- 1. Обработка большого файла в кусках
- 2. Чтение большого файла в кусках C#
- 3. Обработка большого текстового файла
- 4. Чтение файла в кусках
- 5. Чтение большого текстового файла быстрее
- 6. Чтение и обработка большого текстового файла 25 ГБ
- 7. Чтение и обработка большого текстового файла на Java?
- 8. Чтение CSV-файла в кусках
- 9. Чтение большого текстового файла с одной строкой
- 10. Чтение большого форматированного текстового файла с NumPy
- 11. Чтение групп строк из большого текстового файла
- 12. Чтение большого текстового файла и памяти
- 13. Чтение случайной строки из большого текстового файла
- 14. Сжатие большого текстового файла
- 15. Чтение двоичного файла в C (в кусках)
- 16. Чтение большого файла в Java
- 17. Чтение файла в кусках, странный цикл
- 18. Чтение файла csv в кусках для обработки
- 19. Обработка большого файла xlsx
- 20. Python: чтение части текстового файла
- 21. Чтение большого текстового файла в память в C++
- 22. Чтение из большого текстового файла в массив структуры в Qt?
- 23. Быстрое чтение большого текстового файла в структуру 1D в C++
- 24. Обработка большого файла csv
- 25. OutOfMemoryException Обработка большого файла
- 26. PHP обработка большого файла
- 27. Mule: Чтение большого файла в кусках с использованием файлового коннектора, если размер файла большой
- 28. Поиск большого текстового файла
- 29. Очистка большого текстового файла
- 30. Чтение большого текстового файла 10mb в приложении android
Почему вы думаете, что разделение файла поможет, если вам все равно нужно пройти через каждую строку? 'BufferedReader' уже выполняет« chunking »(отсюда и название« Buffered »), поэтому, если что-либо, деление файла будет * медленнее *, поскольку вам придется работать с несколькими файлами, а не с одним. – Kayaman
http://www.baeldung.com/java-read-lines-large-file – Fildor
Я согласен с тем, что сказал Kayaman. 'BufferedReader' уже читает в кусках. Похоже, вы сталкиваетесь с проблемой памяти. Вы пытались просто увеличить объем доступной памяти? Если это не сработает, напишите [mcve], чтобы мы могли точно видеть, что происходит. –