Java で、抽象Readerクラスのサブクラスを作成しようとしています。Reader の close() メソッドを実装しようとしています。私が作成しようとしているサブクラス、Reader2 は、元の Reader からの入力 (ReaderObj.read() を呼び出して取得) を別のものに変換するため、Reader2 オブジェクトで read() を呼び出すと、変換された文字が出力されます。
たとえば、これはすべての小文字の 'a'、'b'、および 'c' 文字を対応する大文字に変換し、残りは変更しません。
Reader in = new InputStreamReader (System.in);
Reader2 translated = new Reader2(in, "abc", "ABC");
while (true) {
int x = translated.read;
if (x == -1) {
break;
}
System.out.print((char x));
}
read() は実装済みですが、close() の実装方法がわかりません。
ドキュメントによると、close() メソッドはストリームを閉じて IOException をスローすることになっています。しかし、ストリームを閉じる方法や IOException をスローする方法がわかりません。close() をどのように正確に書き直すのでしょうか?