Мне кажется, что все, что нужно вашему классу, - это сохранить массив указателей или смещений начала файла для ключевых позиций в файле.
Это действительно зависит от того, что обозначают ваши ключевые местоположения.
Я бы посоветовал вам получить доступ к файлу через ваш класс с помощью некоторых открытых методов. Затем вы можете легче связать ключевые местоположения с записанными данными.
Например, ваши ключевые местоположения могут находиться там, где начинается каждый новый блок данных, записанный в файл. например первый блок 1000 байтов, расположение ключа 0; второй блок 2500 байт, расположение ключа 1000; третий блок 550 байт; ключевое местоположение 3500; следующий блок будет 4050 при условии, что 0 - это первый байт.
Сохраните значения Key в массиве переменной длины, после чего вы сможете легко получить начальную точку для блока данных.
Если ваша ключевая точка обозначена каким-либо ключевым символом, вы можете использовать тот же класс, но с небольшим изменением, чтобы сохранить место хранения ключевого значения. Самый простой способ - пошагово просматривать данные до тех пор, пока не будет найден ключевой символ, считая количество символов, проверенных на ходу. Затем счетчик используется для определения вашего ключевого местоположения.