Господа, не могли бы вы объяснить дураку, как работают FilterInputStreeam и FilterOutputStream, и для чего они нужны? Желательно с примерами кода для каждого класса. Прочитал все, что было про них в Thinking Java + javadoc + google + Шилдт, но так толком и не понял. Зачем в них protected конструкторы?