Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Общие вопросы > Разбить файл на блоки |
Автор: MasterOfCode 8.2.2011, 08:44 | ||
День добрый. Подскажите пути решения проблемы: Есть файл:
Как мне считать данный файл разбив его на блоки (String[]) через раздилитель "~"? |
Автор: techmax 8.2.2011, 09:41 | ||||
прочитали файл
разделили
|
Автор: Kircul 8.2.2011, 18:22 |
techmax, никогда больше так не делайте. Если необходимо проводить конкатенацию строк неопределенное кол-во раз используйте StringBuilder или StringBuffer. |
Автор: MasterOfCode 8.2.2011, 19:58 |
Дак как все таки правильно? |
Автор: _Y_ 8.2.2011, 21:27 |
Если файл очень большой и поэтому обработка его предполагается по мере чтения (поблочно), я бы использовал такой алгоритм в каждом цикле чтения: 1. inputStr.split("~", 2); 2. если размер полученного массива равен 1, добавляем строку в буфер (StringBuffer) и идем читать следующую строку. Если 2 - продолжаем (идем к п.3). 3. добавляем первый член массива в буфер. 4. Обрабатываем содержимое буфера как надлежит. 5. Опустошаем буфер. 6. Присваиваем inputStr значение второго члена массива 7. Возвращаемся к п.1 не читая следующую строку. По окончании чтения (по достижении конца фаила) обрабатываем содержимое буфера как надлежит. |
Автор: techmax 9.2.2011, 04:29 |
Как правильно зависит от твоей задачи.(размера выделенной памяти и размера файла). 1. Если это небольшая задача то хватит и моего примера. дальше можно и не заморачиваться. единственное можешь поменять конкатенацию String' гов на StringBuilder( для небольшого числа сложений разница не принципиальна) 2. Если же размеры имеют значение то вариациями алгоритма приведенного _Y_. (если использовать indexOf и substring вроде должно работать быстрее) |