I’ve posted some of the Java source code we used in the classroom lately.
As we mentioned in the class, the conversion between bytes and characters depends on the encoding scheme. Most current Operating Systems no longer use ASCII but other schemes like UTF-8 to encode text-file contents. That is why we prefer the use of *Reader and *Writer classes instead of just the byte streams. (Why is encoding important?).