Java IO: Input Streaming
The sample code associated with this post can be found on Github.
In Java, the input and output stream abstraction can be used with file systems or across networks. While a lot of these abstractions have been abstracted even further away with modern libraries and tools (via servlets, for example), understanding the basics makes solving things like performance issues a little easier to wrap your head around.