What to notice from gzip.java
•Streams can be wrapped several levels.
•References are declared outside the try/catch block, and instantiated inside.
•We’re still using basic read/write methods, but they work well with buffers.
•All streams should ALWAYS be closed separately.