Такие проблемы не лучше всего решаются с помощью монолитного кода JAVA. Если у вас нет ограничений на инструмент, то рекомендуемый способ его решения - импортировать данные из файла 1 в таблицу базы данных, а затем выполнить запросы из вашей программы, чтобы получить любую информацию, которая вам нравится. Вы можете легко выбрать серийные номера на основе предметов и сгруппировать их для подсчета в зависимости от местоположения.
Этот подход гарантирует, что вы сможете идти в ногу с изменяющимися требованиями, и если ваши файлы огромны, у вас будет хорошая производительность.
Надеюсь, вы хорошо разбираетесь в инструментах SQL и DB, поэтому я не стал публиковать подробности о них.