Should the FileReader ctor do a similar check?  (I'm not sure why there's such an asymmetry between APIs for read vs. write, but it seems like the assertion/error trigger at least should be similar).