ReadChars and WriteChars are traits that contain the character and string methods of Input and Output. The primary difference is that the Charset is defined by the underlying resource rather than supplied at the method invocation site.
Compare two methods:
def chars(implicit codec: Codec = Codec.default): LongTraversable[Char]ReadChars:
def chars: LongTraversable[Char]
Not many examples are needed to explain these concepts but here are a few examples on how to create ReadChar and WriteChar objects: