クラスが階層内でどのように編成されているかという点で、文字ストリームとバイト ストリームが 1 対 1 で対応することを期待していました。
FilterReader
and FilterWriter
(文字ストリーム) はFilterInputStream
and FilterOutputStream
(バイトストリーム) クラスに対応します。
ただし、いくつかの変更に気付きました-
BufferedInputStream
拡張しますがFilterInputStream
、BufferedReader
拡張しませんFilterReader
。BufferedOutputStream
とPrintStream
両方とも拡張FilterOutputStream
しますが、BufferedWriter
とPrintWriter
は拡張しませんFilterWriter
。FilterInputStream
andFilterOutputStream
は抽象クラスではありませんが、FilterReader
andFilterWriter
は抽象クラスです。
そのような違いを指摘するには偏執的すぎるかどうかはわかりませんが、そのような決定の背後に設計上の理由があるかどうかを知りたいと思っていました.