Всю "письменность" можно вынести в отдельную функцию или класс. Аналогично с чтением из файла.