Reusing a StringBuffer is almost always a better idea than creating fresh instances of Strings and StringBuffers. The only thing you have to be wary of is that you don't hit any multi-threading issues.
If you have an improperly synchronized and protected shared buffer, and more than one
thread can access the same object, the potential for wierd bugs can easily outweigh the performance gains. If your application is single-threaded I recommend reusing the buffer.