I use both terms in written and spoken English, but I tend to use 'haven't' more often than 'don't have'.
For me, 'don't have' sounds a little rude and abrupt. The most apt example I could think of was 'I haven't time to help you' rather than 'I don't have time to help you'.
This is a personal opinion only, and not meant as a slight against American English!!
Interesting that while no anglophone would be comfortable saying "I haven't a book" the phrase "haven't a care" somehow survives.
Who stole all the coffee?It's regional.
I haven't any coffee.
I don't have any coffee.
I have no coffee.
I haven't got any coffee - would come last for me, unless I was intending to be emphatic.... "But I haven't GOT any coffee!"