For a while, I wondered why some Commons projects existed. Reinventing the Logging and Output wheels, in particular, seemed like a useless expenditure of effort. Today, I needed to solve a buffering problem for ByteArrays. Java Outputstreams use tiny buffers and I kept seeing weird gc activity. Subclass? Nope. Commons IO to the rescue. Now I know why it was written :)
While I'm on the subject of IO, it seems pretty pertinent to mention this gem . IO:All, written in what is about 100 ^W1000 (thanks to pjm for pointing out my "large values of 100", I meant to say 1000) lines of code basically gives you socket, directory, file and string handling, all in one module. I'm still trying to wrap my brain around his "inheritable exporting" technique. Spiffy, indeed.