Copy all bytes from input to output.
Copy all bytes from input to output. Don't close any stream.
open input stream, wrap in unzipper stream if file suffix indicates compressed file.
open output stream, wrap in zipper stream if file suffix indicates compressed file.
open input stream, wrap in unzipper stream if file suffix indicates compressed file, wrap in reader, wrap in buffered reader, process all lines.
open input stream, wrap in unzipper stream if file suffix indicates compressed file, wrap in reader, wrap in buffered reader, process all lines. The last value passed to proc will be null.
open input stream, wrap in unzipper stream if file suffix indicates compressed file, wrap in reader.
Map from file suffix (without "." dot) to input stream wrapper
open output stream, wrap in zipper stream if file suffix indicates compressed file, wrap in writer.
Map from file suffix (without "." dot) to output stream wrapper
TODO: modify the bzip code such that there are no run-time dependencies on commons-compress. Users should be able to use .gz files without having commons-compress on the classpath. Even better, look for several different bzip2 implementations on the classpath...