Issue #11: Added protected constructors

Constructors for FileReader and FileWriter initialize the filename, and
should be called by subclasses.