JSON is a simple text format for representing
structured objects and collections.
The JSON encoder/decoder transforms between strings and
object structures, such as lists and maps, using the JSON format.

UTF-8 is a common variable-width encoding that can represent
every character in the Unicode character set.
The UTF-8 encoder/decoder transforms between Strings and bytes.

Converters are often used with streams
to transform the data that comes through the stream
as it becomes available.
The following code uses two converters.
The first is a UTF-8 decoder, which converts the data from bytes to UTF-8
as it's read from a file,
The second is an instance of LineSplitter,
which splits the data on newline boundaries.