JDK 1.1 ベータ 2 以降の java.io の変更

現在、クラス java.lang.ThrowableprintStackTrace メソッドをサポートし、このメソッドはPrintStream オブジェクトよりも PrintWriter オブジェクトを取ります。

Writer オブジェクトより OutputStream オブジェクトを取る次の 2 つの便利な構築子が、PrintWriter クラスに追加されました:

   PrintWriter(OutputStream out)
   PrintWriter(OutputStream out, boolean autoFlush)

これらの構築子は、 PrintStream クラスから新しい PrintWriter クラスへの移行を簡単にすることを念頭においています。

ByteArrayInputStream クラスは現在、 mark および reset メソッドをサポートします。

ByteToCharConverter および CharToByteConverter クラスは、もはや public API の一部ではありません。これらは関連クラス ConversionBufferFullExceptionMalformedInputException および UnknownCharacterException と共に sun.io パッケージに移動しました。低レベル文字変換機能をアクセスするインタフェースの改善を、将来のバージョンで計画しています。

コンバータクラスはもはや public ではないので、コンバータ引数を以前取っていた多数の構築子とメソッドは、現在文字エンコーディングの名前を受け付けます。これらは次のとおりです:

byte[]   String.getBytes(String enc)
   String(byte[] buf, String enc)
   String(byte[] buf, int off, int len, String enc)
   OutputStreamWriter(OutputStream out, String enc)
   InputStreamReader(InputStream in, String enc)
String   ByteArrayOutputStream.toString(String enc)

InputStreamReader および OutputStreamWriter クラスは、基礎をなすバイトストリームをバッファする約束はしません。そのため、バイトバッファサイズを指定できる構築子は除外されました。これらのクラスの getCharacterEncoding メソッドは getEncoding に名前を変更されました。

StreamTokenizer(InputStream) 構築子は、ASCII を前提にするのではなく、デフォルトの文字エンコーディングを使用するように変更されました。これによってバイナリ互換が崩れ、元の動作が復元され、この構築子は推奨されなくなりました。


コメントは java-io@java.sun.com 宛てに送ってください。 Mark Reinhold / 4 February 1997