InputStreamReaderの文字エンコーディングを途中で変えたい

http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/io/InputStreamReader.html


InputStreamReader

public InputStreamReader(InputStream in,
String charsetName)
throws UnsupportedEncodingException

指定された文字エンコーディングを使う InputStreamReader を作成します。

パラメータ:
in - InputStream
charsetName - サポートされる charset の名前
例外:
UnsupportedEncodingException - 指定された文字エンコーディングがサポートされていない場合

例えば、以下のように記述すると、

InputStreamReader in = new InputStreamReader(FileInputStream("test.txt"),"ISO2022JP");

ISO-2022-JPとしてファイルtest.txtを解釈してストリームを作ってくれる。


でも、途中でこのファイルを『UTF-8で読みたい。』とか『US-ASCIIにして読みたい。』とかなっても、
文字エンコーディングを途中で変えることはできない。


途中で文字エンコーディングを変えてくれるメソッドがあれば良いんだけど、ないみたい。
BufferedInputStreamを使いバイナリで読んでやって、指定の文字エンコーディングで文字列にしてくれるメソッドを自作するしかないのか。