FileInputStream vs FileReader
Yes, your conclusion is correct subclasses of Reader and Writer are for reading/writing text content. InputStream / OutputStream are for binary content. If you take a look at the documentation: Reader – Abstract class for reading character streams InputStream – Abstract class is the superclass of all classes representing an input stream of bytes.