If you want to emphasize on "буду", e.g. you want to explicitly state that you will perform the action of writing, you should prefer that version. E.g. "Батьки сказали щоб я йому більше не писала - а я буду писати все одно."
You can still use "писатиму" in this case, but I think it places lesser emphasis on the will to write.
Another consideration is that "писатиму" sounds more poetic, like something one would use in a book or poem, but not necessarily in a daily "vulgar" communication. Perhaps because it does not have specific equivalent in russian language - and due to significant russification in Ukraine versions that do have russian equivalents ("буду писати" in this case) are often used more frequently in everyday communication (along with суржик).
As for "напишу" - this is not the same as "писатиму" чи "буду писати". The latter may indicate one-time action ("Я буду писати листа зараз", "Я писатиму листа зараз") or an indefinitely continuing/reoccurring action ("Я писатиму йому", "Я буду писати йому"). While "напишу" specifically indicates one time action ("Я зараз напишу листа", "Я завтра напишу листа") - this is actually a "completed" form (доконаний вид дієслова) of a verb "писатиму". "Completed" or "accomplished" forms of verbs in Ukrainian point to an action that will be wholly completed at specified time, and thus will occur specifically once - as an opposite for "incomplete/unaccomplished" forms (недоконаний вид дієслова), that, as already stated, may indicate indefinitely continuing/reoccurring action.