-1

我知道有一种方法可以通过使用构造函数来链接流,如下所示:

BufferedReader bf=new BufferedReader(new InputStreamReader(io.openStream()));

但是,还有其他方法吗?

SetSink/SetProcess();

也许?

谢谢。

4

2 回答 2

0

由于您不能在没有包装的情况下使用已包装的 Stream,因此答案是

a) 不,你不能和

b) 你不想。

一个原因可能是我已经构建了一个非常长的链,并且只想将接收器流更改为末端,而不是构建一个新的。

在这种情况下,您可以使用中间变量,例如

InputStream in = new FileInputStream(filename);
if (filename.endsWith(".gz"))
    in = new GZIPInputStream(in);
in = new BufferedInputStream(in);
if (objectStream)
   return new ObjectInputStream(in);
return DataInputStream(in);
于 2013-01-25T09:11:03.067 回答
0

如果您查看BufferedReader 类的 javadoc ,构建它的唯一方法是在构造函数中传递一个阅读器。

有什么理由不使用构造函数?

于 2013-01-25T09:12:49.330 回答