Thinking in Java IO