Compilation:  javac LZW.java
  Execution:    java LZW - < input.txt   (compress)
  Execution:    java LZW + < input.txt   (expand)
  Dependencies: BinaryIn.java BinaryOut.java
  Compress or expand binary input from standard input using LZW.
  WARNING: STARTING WITH ORACLE JAVA 6, UPDATE 7 the SUBSTRING
  METHOD TAKES TIME AND SPACE LINEAR IN THE SIZE OF THE EXTRACTED
  SUBSTRING (INSTEAD OF CONSTANT SPACE AND TIME AS IN EARLIER
  IMPLEMENTATIONS).
  See 
this article
  for more details.