I was going through some of the documentation on Java IO and just wanted to make sure whether I get this right:
Unbuffered Input Streams: FileInputS
Rules of thumb:
Any InputStream / Reader that reads directly from an external source (FileInputStream, SocketInputStream, etc.) is 'raw' and considered unbuffered. (Though in reality, there is probably some buffering going on, depends on the implementation)
Any 'raw' InputStream or Reader can be buffered by a BufferedInputStream or BufferedReader.
Same assumptions for OuputStreams / Writers.
Other stream decorators (i.e. GZIPInputStream, MD5InputStream, YourSpecialObjectWriter) probably do some buffering, but its not very harmful to buffer the source.