Имеется текстовый файл и строка, которую нужно найти в файле. Подскажите, каким способом в Java можно запомнить позицию, например, номер символа, начиная с которого в тексте идут совпадения с искомой строкой? В тексте таких совпадений может быть несколько, следовательно необходимо запомнить все номера символов, начиная с которых в текстовом файле идет совпадение по искомой строке.
Например, если использовать метод findInLine(String) класса Scanner, то он только делает проверку на наличие строки в тексте, а не возвращает номер символа. Можно конечно в цикле пройтись по всему текстовому файлу, считывая посимвольно, но это не эффективно
С помощью RandomAccessFile можно построчно перебирать файл и получать для каждой строки величину сдвига относительно начала файла.
RandomAccessFile raf = new RandomAccessFile(path, "r");
long seek = 0;
while (true) {
String s = raf.readLine();
System.out.printf("seek %d; string %s\n", seek, s);
seek += s.getBytes().length;
if (seek > raf.length()) break;
}
Прочитать в последствии нужную строку можно будет подставив необходимое значение seek.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости