You don't need to worry about well-formedness rules
Very configurable output
You can pick any encoding Java supports.
Validity is not automatically maintained.
Not streaming
Requires more memory than writing strings a piece at a time