I personally prefer file streams myself, for the reasons that .oisyn mentioned. (I have a nifty class I call a ForkingStream that'll accept input through operator\<\< and pipe it to 0-to-n items that derive from ostream: very handy for logging).
That said, because FILE *'s are lower level, they're generally faster, although you lose a lot in terms of type safety, and I *believe* you can open the door to a few security issues (or is that only sprintf() and the like that I'm thinking of? Not sure0.
Anyhow, hope that helps.