Это адово медленный цикл.
Вы ходите по всем ключам подряд, ищете подходящий файл, идете к этому файлу, делаете там seek дважды, пишете туда. В это время пишущая головка диска, проклиная все, прыгает от одного блина к другому, дропая кеши и буферы на каждый seek. 

Кроме того, вы открыли 256 файловых дескрипторов. В случае эксепшена вы их не закроете.
Кроме того, если бы по условиям домашки тут было 100х100 бакетов, вам бы не хватило дескрипторов - случился бы Too Many Open Files.

Давайте перепишем это так, чтобы за раз у вас был открытым на запись только один файл. И аккуратно его закроем.