Java has a lot of different ways to represent a stream of bytes. Depending on the author and age of a library, it might use `byte[]`, `InputStream`, `ByteBuffer`, or `ReadableByteChannel`. If the bytes represent strings, there's also `String`, `Reader`, and `CharSequence` to worry about. Remembering how to convert between all of them is a thankless task, made that much worse by libraries which define their own custom representations, or composing them with Clojure's lazy sequences and stream representations.
0 commit comments