Java 1.0的幾乎所有IO流類都有對應的Java 1.1類,用於提供內建的Unicode管理。似乎最容易的事情就是“全部使用新類,再也不要用舊的”,但實際情況並沒有這麼簡單。有些時候,由於受到庫設計的一些限制,我們不得不使用Java 1.0的IO流類。特別要指出的是,在舊流庫的基礎上新加了java.util.zip庫,它們依賴舊的流組件。所以最明智的做法是“嘗試性”地使用Reader和Writer類。若代碼不能通過編譯,便知道必須換回老式庫。
下面這張表格分舊庫與新庫分別總結了信息發起與接收之間的對應關系。
Sources & Sinks:
Java 1.0 class
Corresponding Java 1.1 class
InputStream
Reader
converter: InputStreamReader
OutputStream
Writer
converter: OutputStreamWriter
FileInputStream
FileReader
FileOutputStream
FileWriter
StringBufferInputStream
StringReader
(no corresponding class)
StringWriter
ByteArrayInputStream
CharArrayReader
ByteArrayOutputStream
CharArrayWriter
PipedInputStream
PipedReader
PipedOutputStream
PipedWriter
我們發現即使不完全一致,但舊庫組件中的接口與新接口通常也是類似的。